首页 > 解决方案 > 计算每个长度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 = .....

但我不确定,因为我不知道如何让它计算数量。

如果有人可以请帮助我,那就太好了!

标签: pythonlistcountnested

解决方案


内置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})

推荐阅读