It seems to me that str.count is awfully slow. Is there some reason for this? Evidence:
######## str.count time test ######## import string import time import array s = string.printable * int(1e5) # 10**7 character string a = array.array('c', s) u = unicode(s) RIGHT_ANSWER = s.count('a') def main(): print 'str: ', time_call(s.count, 'a') print 'array: ', time_call(a.count, 'a') print 'unicode:', time_call(u.count, 'a') def time_call(f, *a): start = time.clock() assert RIGHT_ANSWER == f(*a) return time.clock()-start if __name__ == '__main__': main() ###### end ######## On my machine, the output is: str: 0.29365715475 array: 0.448095498171 unicode: 0.0243757237303 If a unicode object can count characters so fast, why should an str object be ten times slower? Just curious, really - it's still fast enough for me (so far). This is with Python 2.4.1 on WinXP. Chris Perkins -- http://mail.python.org/mailman/listinfo/python-list