python - 计算列表列表中的共现
问题描述
使用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'
子列表的唯一字符串的情况)。
解决方案
我会先把它们都数一遍,然后分别处理边缘情况:
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'])
推荐阅读
- android - RecyclerView onitemSelectedListener(可能重复),如何?
- ffmpeg - 是否有为多个视频添加标题的功能?FFMPEG
- ios - 如何遍历数组并对最后一个索引做一些不同的事情?
- jquery - 哪个更快:使用引导 CDN 或下载
- python - pywintypes.com_error:(-2147221008,'CoInitialize 尚未被调用。',无,无)
- ruby-on-rails - 为什么在尝试获取嵌套 JSON 属性时出现“没有将字符串隐式转换为整数”?
- php - 如何优化 api 性能
- python - 使用 Python 从 URL 导入数据(到 pandas 数据框)?
- python - 转换日期时间以允许减法
- django - MOD_WSGI Apache2 您无权访问此资源