我正在尝试执行以下操作:
tup1 = ()
for i in range(1, 10, 2):
tup1 = (tup1, i)
print tup1
我希望输出是序列 1 到 10。 但是,我最终得到以下结果:
((((((), 0), 2), 4), 6), 8)
满足要求的正确方法是什么?
最佳答案
如果您只想要一个偶数为 1 到 10 的可迭代对象,那么最简单的方法是:
seq = range(2, 11, 2)
如果您将此作为学习 Python 的一种方式,并且想要构建自己的数据结构,请使用列表:
l = []
for i in range(2, 11, 2):
l.append(i)
上面的 for 循环可以重写为列表推导式:
l = [i for i in range(2, 11, 2)]
或在循环理解中使用 if 子句:
l = [ i for i in range(1, 11) if i % 2 == 0]
关于python - 将循环中的值添加到元组会导致嵌套元组而不是平面元组或列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553046/