prep = """import random
random.seed("count is faster then sum he said...")
data = random.choices([True,False],k=10000)"""
prog1 = "k = sum(data)"
prog2 = "l = data.count(True)"
prog3 = "j = len( [x for x in data if x] )"
import timeit
print(timeit.timeit(prog1,setup=prep, number = 1000))
print(timeit.timeit(prog2,setup=prep, number = 1000))
print(timeit.timeit(prog3,setup=prep, number = 1000))
输出:
0.32247100600034173 # sum( data )
0.12246353499995166 # data.count( True )
0.24579112000083114 # len( [x for x in data if x] )
计数似乎是正确的选择,它只需要大约45-50%的时间。即使是len( [x for x in data if x] )的list comp也比sum快
只需sum()列表
False
是0,True
是1。 另一种方法是list.count()
的True
:输出:
计数似乎是正确的选择,它只需要大约45-50%的时间。即使是
len( [x for x in data if x] )
的list comp也比sum快这两种方法已经包含在其他问题中:
相关问题 更多 >
编程相关推荐