count number of ones in a given integer

What you're looking for is called the Hamming weight, and there are a lot of algorithms to do it. Here's another straightforward one:

def ones(n):
    w = 0
    while (n):
        w += 1
        n &= n - 1
    return w

Use the awesome collections module.

>>> from collections import Counter
>>> binary = bin(20)[2:]
>>> Counter(binary)
Counter({'0': 3, '1': 2})

Or you can use the built-in function count():

>>> binary = bin(20)[2:]
>>> binary.count('1')
2

Or even:

>>> sum(1 for i in bin(20)[2:] if i == '1')
2

But that last solution is slower than using count()