我有一个由元组组成的列表
liste_groupe=((image1, image2, image6),(image5, image4, image8, image7, image3, image9))
我想拥有所有元组的元素数量,即这里的结果将是9
我尝试了len(liste_groupe),但它给了我2。
那么我应该编写什么代码才能获得列表中所有元组的所有元素的编号?
答案 0 :(得分:0)
将一个元组元组展平为一个列表,
LinearLayout
如果你只关心元素的数量,
false
答案 1 :(得分:0)
您可以遵循递归方法:
def tuple_length( t ):
if type(t) != tuple:
return 1
length = 0
for element in t:
length += tuple_length( element )
return length
现在,tuple_length(liste_groupe)将按预期返回9.
答案 2 :(得分:0)
递归可以为你完成这个。使用以下函数,可以计算n维元组或列表的大小。
def calculate_size(data_set, size=0):
for i in data_set:
if isinstance(i, tuple) or isinstance(i, list):
size += calculate_size(i)
else:
size += 1
return size
答案 3 :(得分:0)
不需要展平列表以查找总长度,如果您已经知道列表是简单的2D结构,则无需使用递归。这就是你所需要的:
sum(map(len, liste_groupe))
答案 4 :(得分:0)
适用于单个嵌套列表。对于更深层或不规则嵌套的列表,您需要一个使用chain
的递归函数。
from itertools import chain
cnt = len(list(chain.from_iterable(list_group)))