python - 查找哪些列表具有大量列表的相同元素
问题描述
我有一个列表字典(我也可以将它们设置为集合)
mydict = {key1: [s11, s12, ...],
key2: [s21, s22, ...],
keyN: [sN1, sN2, ...]}
其中 s* 是字符串。我想确定哪些键具有等效列表。我了解如何对两个列表(==)或集合(交集)进行成对比较,但我需要收集所有具有匹配列表的键。例如:
common1 = [key1, key97] # mydict[key1]==mydict[key97]
common2 = [key3, key42, key51] # these keys from mydict have equivalent lists
在 Python 中有什么有效的方法来做到这一点?
解决方案
result = {}
for k,v in mydict.items():
result.setdefault(tuple(v), []).append(k)
commons = result.values()
推荐阅读
- windows - 部署 GTK 应用程序的问题
- ansible - 无法执行服务重启,在ansible中从非root用户复制文件
- javascript - 粘贴到没有特殊字符的文本区域
- java - wrap_content 如何与编辑文本视图一起使用?
- java - Firestore 不查询第二个集合
- c# - 将十进制转换为十六进制
- c++ - GSL 的 Expects(cond) 对运行时的性能影响是什么?
- angular - 在 Observable.interval() 中捕获 http 错误
- sql-server - 如何从记录集中获取 ID 字段?
- netlogo - 如何针对以下情况做出一些行为?