我给变量my_list分配了一个列表。
my_list = [[(1, 2)], [(4, 8), (2, 3)], [(1, 6), (6,7), (8,9)]]. 我需要找到my_list的长度,但是len(my_list)只返回3。
我想把它还给你。我对蟒蛇很陌生。是否有任何Python函数将返回完整长度的my_list,包括嵌套列表?
发布于 2019-10-28 15:10:29
您可以使用itertools.chain.from_iterable。
my_list = [[(1, 2)], [(4, 8), (2, 3)], [(1, 6), (6,7), (8,9)]]
length = len(list(itertools.chain.from_iterable(my_list)))
print(length)
# >>> 6编辑:如果您必须经常这样做,并且不想每次输入len(list(itertools.chain....,您可以创建自己的函数。
def my_len(arr):
return len(list(itertools.chain.from_iterable(arr)))然后对任何需要长度的列表调用my_len。
my_list = [[(1, 2)], [(4, 8), (2, 3)], [(1, 6), (6,7), (8,9)]]
print(my_len(my_list))
# > 6发布于 2019-10-28 15:02:22
没有这样的内置函数,但是可以通过生成器表达式轻松地获得它:
length = sum(len(inner_list) for inner_list in my_list)发布于 2019-10-28 15:05:48
把清单压平:
my_list = [[(1, 2)], [(4, 8), (2, 3)], [(1, 6), (6,7), (8,9)]];
flat = [item for sublist in my_list for item in sublist];
print (len(flat));https://stackoverflow.com/questions/58593257
复制相似问题