首页 > 解决方案 > 计算列表列表中的共现

问题描述

使用python,我定义了以下字符串列表

some_list = [['abc', 'aa', 'xdf'], ['def', 'asd'], ['abc', 'xyz'], ['ghi', 'edd'], ['abc', 'xyz'], ['abc', ]]

选择和计算出现在与 'abc' 相同的子列表中的字符串的最佳方法是什么?在此示例中,我正在寻找一个输出(字典或列表),例如:

('aa', 1), ('xdf', 1), ('xyz',2), (None, 1)

(None, 1)将捕获'abc'子列表的唯一字符串的情况)。

标签: pythonlistcounter

解决方案


我会先把它们都数一遍,然后分别处理边缘情况:

from collections import Counter
from itertools import chain

c = Counter(chain.from_iterable(x for x in A if 'abc' in x))
c[None] = A.count(['abc'])

推荐阅读