我有以下代码:
list1 = [4,1,2,6] for elem in sorted(list1): #some task
我想知道Python使用该sorted()方法对列表进行了多少次排序?是每次迭代还是一次?
sorted()
换句话说,以下代码更有效吗?
list1 = [4,1,2,6] list1 = sorted(list1) for elem in list1: #some task
在两个代码示例中,列表仅排序一次。
in在开始循环之前,仅对一次for循环标头中运算符右侧的表达式求值。您可以在文档中阅读:
in
for_stmt :: =“ for” target_list“ in” expression_list“:”套件 [“ else”“:”套件] 表达式列表被评估一次 ; 它应该产生一个可迭代的对象。
for_stmt :: =“ for” target_list“ in” expression_list“:”套件 [“ else”“:”套件]
表达式列表被评估一次 ; 它应该产生一个可迭代的对象。
实际上,第二个代码示例效率 较低, 因为存在不必要的分配。