Skip to main content
 首页 » 编程设计

Python for 循环执行

2025年05月04日13softidea

for a in sorted(arr): 
    doSomething() 

对比

sArr = sorted(arr) 
for a in sArr: 
    doSomething() 

这 2 个是否完全相同,或者一个会比另一个消耗更多的 cpu 周期?

也就是说,sorted(arr) 会在第一个例子中的每个循环中被调用吗?

谢谢

请您参考如下方法:

它们几乎相同。

The documentation说:

The expression list is evaluated once; it should yield an iterable object.

因此,在上面的代码中,sorted() 调用不存在多次发生的风险。

第一种形式更好,因为它更短、更简洁,并且可以更好地进行优化(因为解释器可以在循环完成后发现排序列表完全超出范围)。