首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清单清单python

清单清单python
EN

Stack Overflow用户
提问于 2019-10-28 14:57:29
回答 4查看 63关注 0票数 1

我给变量my_list分配了一个列表。

代码语言:javascript
复制
my_list = [[(1, 2)], [(4, 8), (2, 3)], [(1, 6), (6,7), (8,9)]]. 

我需要找到my_list的长度,但是len(my_list)只返回3。

我想把它还给你。我对蟒蛇很陌生。是否有任何Python函数将返回完整长度的my_list,包括嵌套列表?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-10-28 15:10:29

您可以使用itertools.chain.from_iterable

代码语言:javascript
复制
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....,您可以创建自己的函数。

代码语言:javascript
复制
def my_len(arr):
    return len(list(itertools.chain.from_iterable(arr)))

然后对任何需要长度的列表调用my_len

代码语言:javascript
复制
my_list  = [[(1, 2)], [(4, 8), (2, 3)], [(1, 6), (6,7), (8,9)]]
print(my_len(my_list))
# > 6
票数 0
EN

Stack Overflow用户

发布于 2019-10-28 15:02:22

没有这样的内置函数,但是可以通过生成器表达式轻松地获得它:

代码语言:javascript
复制
length = sum(len(inner_list) for inner_list in my_list)
票数 2
EN

Stack Overflow用户

发布于 2019-10-28 15:05:48

把清单压平:

代码语言:javascript
复制
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));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58593257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档