我有一個包含元組的列表。每個元組擁有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])''。 –