我有一个包含元组的列表。每个元组拥有2个元素。我试着用下面的代码打印出来,但它给人的错误消息:通过嵌套for循环的元组列表来扩充列表
TypeError: list indices must be integers or slices, not tuple
相关代码:
for i in list:
for j in [1, 2]:
print(list[i][j])
随着打印1元组的每个元素的想法,每个元素第二元组等
我有一个包含元组的列表。每个元组拥有2个元素。我试着用下面的代码打印出来,但它给人的错误消息:通过嵌套for循环的元组列表来扩充列表
TypeError: list indices must be integers or slices, not tuple
相关代码:
for i in list:
for j in [1, 2]:
print(list[i][j])
随着打印1元组的每个元素的想法,每个元素第二元组等
在循环中实现i
实际上是一个元组(列表的一个元素)。所以,您只需要打印i
的元素,如i[j]
。 list[i]
是没有意义的,因为i
应该是一个整数,但它实际上是列表的一个元素,即元组。你也必须得到这样的错误TypeError: list indices must be integers, not tuple
。好吧,我。所以这应该是对你的暗示/解释。
lst = [(1,2),(5,9)]
for i in lst:
for j in [0, 1]:
print(i[j])
print
输出:
1 2
5 9
尽量不要使用变量名“list”进行赋值,可以使用list_或完全重命名。你不应该分配任何东西给stdlib名字 –
op,很好的时机:)。在[i] [j]'之后删除逗号并在'print's周围放置逗号,并且您的代码将交叉兼容并正常工作:) –
您忘记了第二个打印语句中的缺口:) –
您可以使用嵌套列表理解:
[i for subset in list for i in subset] give you flat list
这是更Python!
正如@ Miraj50说,'i`已经是一个元组可以解压的元组的循环
>>> tup_list = [(1,2), (3,4)]
>>> for a,b in tup_list:
... print(a,b)
...
1 2
3 4
。只要摆脱嵌套循环,并在第一个上执行'print(i [0],i [1])''。 –