python - 计算每个长度Python的列表(嵌套列表)中的列表数量
问题描述
我有一个包含字符串的列表列表。如下所示:
[['apple', 'pear', 'apple'], ['apple', 'apple'], ['apple', 'pear', 'apple','apple', 'pear', 'apple']]
此列表中有大约 2000 个列表,所有列表都包含不同数量的字符串。我想看看这个列表中有多少特定长度的子列表。如下所示:
长度 2 个字符串:70 个列表长度 3 个字符串:45 个列表等等。
执行此操作的一种逻辑方法(我认为)是为一段渴望的长度制作一个循环,然后为我想要的列表数量的所有长度播放这个循环。
我会想象它是这样的:
def countList(lst, x):
count = 0
for i in range(len(lst)):
if x in lst[i]:
count+= 1
return count
x = .....
但我不确定,因为我不知道如何让它计算数量。
如果有人可以请帮助我,那就太好了!
解决方案
内置collections.Counter
优雅地处理这个:
>>> from collections import Counter
>>> mydata = [['apple', 'pear', 'apple'], ['apple', 'apple'], ['apple', 'pear', 'apple','apple', 'pear', 'apple']]
>>> Counter(map(len, mydata))
Counter({3: 1, 2: 1, 6: 1})
>>> Counter(len(sublist) for sublist in mydata) # or with a generator expression
Counter({3: 1, 2: 1, 6: 1})
推荐阅读
- duplicates - comm -23 不删除所有常用行
- html - Bootstrap 4.0 input-group-append 和 prepend 显示错误的高度
- solr - 将 solr 的文档分数与 solr 7.x 中的静态索引分数相结合
- google-app-engine - Google Cloud Datastore:多租户有什么好处吗?
- r - R绘制估计的条件概率
- linux - 如何逐行读取 gz 文件 TCL/LINUX
- vba - 使用 Outlook VBA 将邮件信息导入 Excel
- gremlin - 使用 Spark 添加 Edges gremlin
- makefile - 如何找出变量 MAKE 的定义
- java - 当项目在地图中时如何在 vaadin 网格中设置项目