Python 3元组迭代。错误或预期行为?

时间:2019-06-08 20:41:49

标签: python python-3.x python-2.7

如果我有一个包含单个可迭代项(列表或元组)的父级列表,并且我遍历了父级列表,则循环运行一次,并且将子级列表或元组作为单个参数,但是如果对父级使用元组,该循环实际上在子级上进行迭代,从而循环多个子级,如下面的代码段所示。这是预期的行为还是需要将其报告为错误?

非常感谢, 大卫·肖

test = [(1, 'one')]
for i in test:
    print(test)

输出:

(1, 'one)

python

test = ((2, 'two'))
for i in test:
    print(test)

输出:

2
'two'

1 个答案:

答案 0 :(得分:3)

括号不构成元组。逗号组成元组。这些都是整数1的相同值。

31

比较:

x = ((1))
x = (1)
x = 1

全部组成一个2元组。

使用以下命令将一个2元组归入一个1元组:

x = ((1,'one'))
x = (1,'one')
x = 1,'one'