python - 将循环中的值添加到元组会导致嵌套元组而不是平面元组或列表

标签 python

我正在尝试执行以下操作:

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/

相关文章:

python - 在这个硬币找零问题中,我该如何做 "recursive"for 循环?

python - Tkinter tkSimpleDialog.Dialog 调整大小

python - Python 的内置类型是否有多余的特殊方法?

python - 如何使用 XPath 选择两个特定表行之间的元素

Python 参数解析 : Leading dash in argument

python - 在 Python 中运行 C 扩展比普通 C 更快

python - 如何使用私有(private)代码共享Google colab

python - 根据数字对混合字符串列表进行排序

python - pip安装包出现错误 "Could not install packages due to an EnvironmentError"

python - 根据近似或精确匹配合并两个 Pandas DataFrame