for a in sorted(arr):
doSomething()
对比
sArr = sorted(arr)
for a in sArr:
doSomething()
这 2 个是否完全相同,或者一个会比另一个消耗更多的 cpu 周期?
也就是说,sorted(arr) 会在第一个例子中的每个循环中被调用吗?
谢谢
请您参考如下方法:
它们几乎相同。
The expression list is evaluated once; it should yield an iterable object.
因此,在上面的代码中,sorted() 调用不存在多次发生的风险。
第一种形式更好,因为它更短、更简洁,并且可以更好地进行优化(因为解释器可以在循环完成后发现排序列表完全超出范围)。
