While code completion is a feature of the tools (text editor / IDE), not the language, some languages lend themselves better to code completion than others. C#, for example, was designed with an auto-completing IDE in mind from day one, and it shows.
However, this advantage can't be had for free: typical "IDE" languages (e.g. C#, Java) tend to be quite verbose, and they do not, in general, make an active aggressive effort to eliminate boilerplate. After all, a good IDE will mostly generate and manage the boilerplate for you. "Non-IDE" languages (say, Python, Haskell, or even good old Lisp), by contrast, take boilerplate and expressiveness very seriously, and they aim at a high expressivity-per-character ratio. Features like lambdas, list splicing, more compact object syntax, dynamic typing or type inference, all contribute to less code to do the same. As a result, it is not uncommon for a typical Python program to be shorter than the Java equivalent by a factor of 50% or more.
So IDE-type languages benefit more from autocompletion, but they also rely more on it - I would never try to write a moderately complex web application in C# or Java without a good IDE, but I do it all the time in PHP, Python, and Haskell - what these languages lack in autocompletability, they make up for in terseness, clarity and expressivity.
In short, a language like Python is harder to auto-complete, but it's also a lot less necessary, and the lack of perfect autocompletion does not mean people have to type more to do the same.