Python在sum之后停止迭代数组

时间:2013-04-07 12:56:56

标签: python python-3.x

为什么这段代码什么都没有返回?

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)

1 个答案:

答案 0 :(得分:3)

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

如果要多次迭代结果,则必须将其转换为实际集合,方法是将其传递给listtuple