all(n > 10 for n in numbers), 另外的写法更直接把
ouyangkui opened this issue · comments
ouyangkui commented
min(numbers)>10
piglei commented
严格来说,这两个写法不是等价的。
# all 在碰到第一个不满足条件的元素时就会中断
>>> timeit.timeit('all(n > 10 for n in numbers)', 'numbers = list(range(100))')
0.385196819999976
# min 无论如何会遍历完所有元素
>>> timeit.timeit('min(numbers) > 10', 'numbers = list(range(100))')
1.770098766999979
二者在特殊情况下是有数量级的性能差距的。
ouyangkui commented
确实又性能问题,同意