我有以下代码:
list1 = [4,1,2,6]
for elem in sorted(list1):
#some task
我想知道Python使用sorted()
方法对列表进行多少次排序?是每次迭代还是只进行一次?
换句话说,以下代码更有效率?
list1 = [4,1,2,6]
list1 = sorted(list1)
for elem in list1:
#some task
答案 0 :(得分:9)
在两个代码示例中,列表仅排序一次。
在循环开始之前,for-loop头中in
运算符右侧的表达式仅被计算一次。您可以在documentation:
for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite]表达式列表评估一次;它应该产生一个可迭代的 对象
事实上,第二个代码示例 less 效率很高,因为存在不必要的赋值。