【发布时间】:2018-07-05 07:15:42
【问题描述】:
您好,我正在通过 Youtube 教程系列学习 Python,the tutorial I just viewed 解释了如何打印嵌入在 list 中的 tuples。视频发布者解释了两种方式,具体来说:
>>> a = [(1,2,3), (4,5,6), (7,8,9)]
>>> for (b, c, d) in a:
... print(b,c,d)
...
1 2 3
4 5 6
7 8 9
>>> for nums in a:
... a,b,c = nums
... print(a,b,c)
...
1 2 3
4 5 6
7 8 9
我尝试了第三种方式:
>>> for nums in a:
... a,b,c = nums
... print(nums)
但收到此错误
"Traceback(最近一次调用最后一次):文件"",第 1 行,in TypeError: 'int' 对象不可迭代"
我觉得要点是我应该确保始终以tuple 形式打印tuples,但如果它真的很长tuple(或list),那似乎真的很乏味tuples)。我的尝试有什么问题?
【问题讨论】:
-
你选择的变量命名是错误的。您将
a重新声明为内部循环变量,因此第二次迭代中的a变为整数。 -
好吧,你提供的例子都没有用。你通常会做
for nums in a: print(nums)。这里的问题是你已经用你最后一个 for 循环的最终结果覆盖了你的a变量,它曾经是一个列表。 -
好的,我知道了。谢谢!更改它会使用括号打印,而其他方法则不会。这是为什么? @coldspeed
-
因为在一个中,您正在使用
print函数 并向其传递三个参数。另一方面,您传递给它一个 single argument,它恰好是一个元组。您可以像这样将元组解压到函数调用中:for nums in a: print(*nums)