vector addition

GZ zyzhu2000 at gmail.com
Sat Jun 5 21:20:04 EDT 2010


Hi,

I am looking for a fast internal vector representation so that
(a1,b2,c1)+(a2,b2,c2)=(a1+a2,b1+b2,c1+c2).

So I have a list

l = ['a'a,'bb','ca','de'...]

I want to count all items that start with an 'a', 'b', and 'c'.

What I can do is:

count_a = sum(int(x[1]=='a') for x in l)
count_b = sum(int(x[1]=='b') for x in l)
count_c = sum(int(x[1]=='c') for x in l)

But this loops through the list three times, which can be slow.

I'd like to have something like this:
count_a, count_b, count_c =
sum( (int(x[1]=='a',int(x[1]=='b',int(x[1]=='c')   for x in l)

I hesitate to use numpy array, because that will literally create and
destroy a ton of the arrays, and is likely to be slow.









More information about the Python-list mailing list