python - 列表列表中的重复项
问题描述
我有一个以下格式的值列表。对于列表列表中的每个项目,我试图找出它是否存在于任何其他子列表中 - 如果是,我想计算一下。
[
['37772'],
['38119', '38120'],
['38103-2807', '38103-2897', '38103', '38104'],
['38138-3904', '38138'],
['37421'],
['37772'],
['37067'],
['37203'],
['38115'],
['38305'],
['37916'],
['37356'],
['38119']
]
结果:
37772 - 2
38119 - 2
38120 - 1
38103-2807 - 1
....
关于如何使用内置函数实现这一点的任何线索?
解决方案
您可以使用内置模块itertools.chain
和collections.Counter
lst = [['37772'],
['38119', '38120'],
['38103-2807', '38103-2897', '38103', '38104'],
['38138-3904', '38138'],
['37421'],
['37772'],
['37067'],
['37203'],
['38115'],
['38305'],
['37916'],
['37356'],
['38119']]
from itertools import chain
from collections import Counter
items = Counter(chain.from_iterable(lst))
for k, v in items.items():
print(k, v)
>>> 37772 2
>>> 38119 2
>>> 38120 1
>>> 38103-2807 1
>>> ...
推荐阅读
- javascript - 如果他没有从选择框-PHP 中选择值,如何限制用户提交表单
- verilog - 以不同的时钟将数据写入内存
- bixby - 如何使用 Bixby 视图创建水平跨越单元格?
- treemap - 在 highcharter 包 R 中使用 hctreemap2 函数时如何将 hc_plotOptions() 指定到特定层(级别)
- next.js - 如何在 nextjs 中动态设置元标记
- reactjs - 是 React MVVM 框架吗?
- python - 如何从文本文件中读取字典?
- spring-batch - 如何使用弹簧批处理在每列的分隔符之前添加空格?
- javascript - 为什么 Chrome 会在包含的 Javascript 文件后添加查询字符串参数?
- regex - 如何筛选 Google Docs re2 表达式中的双引号?