簡體   English   中英

如果列表包含大小不等的元組,如何迭代?

[英]How to iterate if list contains unequal tuple in size?

我們已經知道,如果我們有一個包含相等元組大小的列表,那么我們可以像下面一樣迭代,

list1 =[(1,2),(3,4),(5,6)]
for (i,j) in list1:
    print(i,j)

如果我有一個元組列表如下:

list1 =[(1,2,3),(4,5),(7,8,9),(10,11)] 

而不是使用嵌套的for循環,有沒有其他方法來遍歷所有元素?

如果您已經知道最小尺寸,則可以打開最小尺寸和剩余尺寸:

>>> list1 =[(1,2,3),(4,5),(7,8,9),(10,11)] 
>>> for i, j, *r in list1:
...     print(i, j, r)
... 
1 2 [3]
4 5 []
7 8 [9]
10 11 []

你可以把它解析,並轉換成一個列表,並使用len()list來獲得它的size不知道這一點,事前:

list1 =[(1,2,3),(4,5),(7,8,9),(10,11)]

for elem in list1:
    print([*elem], "of size: {}".format(len([*elem])))

輸出

[1, 2, 3] of size: 3
[4, 5] of size: 2
[7, 8, 9] of size: 3
[10, 11] of size: 2

編輯

如果你不想要任何列表轉換:

print(', '.join(map(str, (elem))), "of size: {}".format(len(elem)))

輸出

1, 2, 3 of size: 3
4, 5 of size: 2
7, 8, 9 of size: 3
10, 11 of size: 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM