【发布时间】:2020-11-03 15:11:28
【问题描述】:
我正在寻找一种方法来识别字典中的项目相同的键 - 但是,有 数百个键,每个项目是最多 60 个的列表-70 个元素长度
我想找到所有具有相同项目的键;我找到了这个并找到了它 https://www.geeksforgeeks.org/python-find-keys-with-duplicate-values-in-dictionary/ 但是当项目是列表时,这是一个问题。我将列表转换为字符串并尝试了翻转路线,但是键很笨拙(大量列表作为字符串),并且似乎不是pythonic。
示例:
foo = {'123':['ham','salami','beef','bacon','lamb-chop'],
'124':['ham','salami','bacon','pepper'],
'125':['ham','salami','bacon','pepper'],
'126':['salami','bacon','lamb-chop']}
对于上面的示例,我可以识别出它
124, 125 --> ['ham','salami','bacon','pepper']
是相同的,并且
123 --> ['ham','salami','beef','bacon','lamb-chop']
和
126 --> ['salami','bacon','lamb-chop']
是分开的。
输出可以是如下的字典:
'Group 1':['124,'125'],
'Group 2':['123'],
'Group 3':['126']
分组都表示它们具有相同的列表元素。我不太介意 - 只是想避免 600 多个字符串作为字典的键。
我尝试从字典中构建 pandas 数据框,将项目视为集合并进行比较,但我没有比翻转路线更好地管理它
我有第二个与此相关的问题,所以我会在发布时在这里放一个链接......
【问题讨论】:
-
“能够识别”是什么意思?你能告诉我们你期望的具体输出吗?
-
@yatu 我已经编辑澄清
标签: python pandas dictionary