我们已经知道,如果我们有一个包含大小相等的元组的列表,那么我们可以像下面这样迭代,
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循环之外,还有其他方法可以遍历所有元素吗?
答案 0 :(得分:6)
如果您已经知道最小尺寸,则可以打开最小尺寸和剩余尺寸的包装:
>>> 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 []
答案 1 :(得分:0)
您可以打开元组并将其转换为列表,并在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