piglei / one-python-craftsman

来自一位 Pythonista 的编程经验分享,内容涵盖编码技巧、最佳实践与思维模式等方面。

Home Page:https://www.piglei.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

all(n > 10 for n in numbers), 另外的写法更直接把

ouyangkui opened this issue · comments

min(numbers)>10

严格来说,这两个写法不是等价的。

# 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

二者在特殊情况下是有数量级的性能差距的。

确实又性能问题,同意