在for循环python中打印元组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在for循环python中打印元组相关的知识,希望对你有一定的参考价值。
嗨,我正在通过Youtube Tutorial系列学习Python,the tutorial I just viewed解释了如何打印嵌入tuple
中的list
s。视频发布者解释了两种方式,具体来说:
>>> 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(最近一次调用最后一次):TypeError中的文件”“,第1行:'int'对象不可迭代”
我觉得外卖是我应该确保始终以tuple
形式打印tuple
s,但如果它真的很长tuple
(或list
的tuple
),那似乎真的很乏味。我的尝试出了什么问题?
答案
首先,这很好用
a = [(1,2,3), (4,5,6), (7,8,9)]
for nums in a:
a,b,c = nums
print(nums)
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
其次,如果不需要扩展元组(或者通常任何可迭代的元素),则不必。这相当于上面的代码段。 for循环只是迭代第一级对象,无论是什么(在你的情况下为元组):
a = [(1,2,3), (4,5,6), (7,8,9)]
for nums in a:
print(nums)
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
第三,在循环外定义的循环中重用变量a
是一种不好的做法。之后,在循环之外,a
将是循环的最后一次迭代(即7)。这是鸭子打字的一个缺点,例如,与C相比,python中缺少类型声明
a = [(1,2,3), (4,5,6), (7,8,9)]
for nums in a:
a,b,c = nums
print(nums)
print a
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
7
另一答案
你可以这样做:
a = [(1,2,3), (4,5,6), (7,8,9)]
for tuplet in a:
print (tuplet)
这将以连音符的形式打印(1,2,3)(4,5,6)(7,8,9)
另一答案
正如评论所说,你通过在循环中重新分配a
来破坏你的列表变量a
。您应该能够通过使用不同的变量名来解决此问题,例如:
a = [(1,2,3), (4,5,6), (7,8,9)]
for nums in a:
x,y,z = nums
print(x,y,z)
当我这样做时,我得到以下输出:
(1, 2, 3) (4, 5, 6) (7, 8, 9)
以上是关于在for循环python中打印元组的主要内容,如果未能解决你的问题,请参考以下文章
python中的while循环与for循环怎么样那个比较好用?