例如 有个字典{'abcd':[1,2,3],'bcd':[1,2,3],'abcd':[2,3,4],'bcd':[2,3,4]}
对于值相同且key具有包含关系进行合并,成{'abcd':[1,2,3],'abcd':[2,3,4]}
怎么用python实现啊?
谢谢您的回答 但是可能我的例子 可能没有举得很好 我的意思是在值相同的情况下对键进行合并,而值是列表
例如:{'abcd':[1,2,3],'bcd':[2,3,4],'bc':[1,2,3],'cd':[2,3,4]}合并成为
{'abcd':[1,2,3],'bcd':[2,3,4]}
>>> d = {'abcd':[1,2,3],'bcd':[2,3,4],'bc':[1,2,3],'cd':[2,3,4]}
>>> d
{'abcd': [1, 2, 3], 'bcd': [2, 3, 4], 'cd': [2, 3, 4], 'bc': [1, 2, 3]}
>>> target = {}
>>> for k,v in d.items():
for element in k:
target.setdefault(str(v),set()).add(element)
>>> dn = dict([(''.join(sorted(list(v))),eval(k)) for k,v in target.items()])
>>> dn
{'bcd': [2, 3, 4], 'abcd': [1, 2, 3]}
>>>
谢谢您的回答 我用我运行的数据 发现这样运行的结果 没办法区分键的字符串中含有相同字符串以及不按字典序排序的情况
例如:{'acbd':[1,2,3],'cbd':[2,3,4],'cb':[1,2,3],'cb':[2,3,4]}
会合并成为 {'abcd':[1,2,3],'bcd':[2,3,4]} 这样就改变了原先字符串的顺序
有由相同值分组可以得到所有相关键的列表,这事儿的关键在于新字典的键如何生成需要你先明确一个逻辑。
例如 ['abcd','cbd','dc'] 转换为 ?