Jan Kaliszewski wrote: > 20-08-2009 o 13:01:29 Neal Becker <ndbeck...@gmail.com> wrote: > >> I meant #occurrences of characters from the set A in string B > > But: > > 1) separately for each element of A? (see Simon's sollution with > defaultdict) > > 2) or total number of all occurrences of elements of A? (see below) > > > 20-08-2009 o 14:05:12 Peter Otten <__pete...@web.de> wrote: > >> identity = "".join(map(chr, range(256))) >> n = len(b) - len(b.translate(identity, a)) > > Nice, though I'd prefer Simon's sollution: > > a = set(a) > n = sum(item in a for item in b)
Just to give you an idea why I posted the former: $ python -m timeit -s"a = set('abc'); b = 'abcdefg'*10**5" 'sum(item in a for item in b)' 10 loops, best of 3: 195 msec per loop $ python -m timeit -s"a = 'abc'; b = 'abcdefg'*10**5; id=''.join(map(chr, range(256)))" 'len(b) - len(b.translate(id, a))' 100 loops, best of 3: 4.97 msec per loop Peter -- http://mail.python.org/mailman/listinfo/python-list