我不明白为什么下面的代码会删除所有元素。我该如何预防?
from sympy.utilities.iterables import variations
x=variations(["H","T"],3, True)
print(list(x))
t=sum(1 for i in x)
print(list(x))
答案 0 :(得分:1)
可以消耗生成器,这是第3行print(list(x))
中发生的事情。解决此问题的一种方法是将其保存为列表,尽管在这种情况下可能有更合适的解决方案。
y = list(x)
print(y)
t = len(y) # Since y is a list, we can use len
print(y)
还请注意,您可以使用任何生成器来重现此行为。 Sympy不在话下。