Python在sum之后停止迭代数组



为什么这段代码什么也不返回?

a = [1,2,3]
a = reversed(sorted(a))
s = sum(a)
for k in a:
    print(k)

下面的代码可以正常工作:

a = [1,2,3]
a = reversed(sorted(a))
# s = sum(a)
for k in a:
    print(k)

reversed()返回一个迭代器。这是函数创建的一个特殊对象,可以迭代一次,以相反的顺序给出结果。这意味着第二次尝试迭代它时,它不再有任何内容。

如果你想多次迭代结果,你必须通过传递给listtuple将其转换为一个实际的集合。

最新更新