【问题标题】:Will "for i in sorted(my_list):" sort the list every time?“for i in sorted(my_list):” 每次都会对列表进行排序吗?
【发布时间】:2015-05-14 23:28:41
【问题描述】:

假设我有一个列表my_list,它是一堆随机顺序的数字。

我想打印所有这些数字,但已排序。如果我这样做:

for i in sorted(my_list):
    print(i)

这是否意味着列表将在每次迭代时重新排序?与更冗长的相比有什么优点/缺点

sorted_list = sorted(my_list)
for i in sorted_list:
    print(i)

?

【问题讨论】:

    标签: performance python-3.x for-loop


    【解决方案1】:

    不,不会在每次迭代时对列表进行排序,因为 sorted() 会创建一个新列表,并且循环将对其进行迭代。

    当然,如果您打算多次循环排序列表,则将其存储在变量中是有意义的。

    【讨论】:

      【解决方案2】:

      两个代码示例都是相同的,除了第二个中使用的变量。它会排序一次,然后遍历元素。

      【讨论】:

        猜你喜欢
        • 2011-04-11
        • 2016-03-19
        • 2019-07-29
        • 2021-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多