所以,这个问题很难浓缩成标题,但这里有一个详细的解释。
我有一个大字典,它有数千个键值对,可以有下面的例子:
dict = {'apple' : ['mint', 'nutmeg', 'cinnamon'], 'mint' : ['apple', 'orange', 'banana']}
注意“apple”是一个键,它的值是list,list包含“mint”元素。
在我的大字典里,“薄荷”也可能是一个键,它可能有一个含有“苹果”元素的水果列表。因为它是字典第二个元素的键。
问题是我想保留这对苹果和薄荷,不管哪一个是关键,但我想要一个精致的字典,它们不会形成重复。
因此所需的字典是:
dict_2 = {'apple' : ['mint', 'nutmeg', 'cinnamon'], 'mint' : ['orange', 'banana']}
如果“mint”列表中的“apple”元素被删除,
或
dict_2 = {'apple' : ['nutmeg', 'cinnamon'], 'mint' : ['apple', 'orange', 'banana']}
“苹果”列表中的“薄荷”元素已被删除。
编辑:我找到了这个问题的解决办法。你可以在下面找到它
2条答案
按热度按时间osh3o9ms1#
因为这看起来像是家庭作业,你还没有展示任何工作或问一个特定的问题,我会给你一些算法的提示,但编写代码是由你决定的。
你想吗
迭代每个
key, value
在字典里例如
key = "apple"; value = ['mint', 'nutmeg', 'cinnamon']
迭代每个元素v
值(&V):如果
mydict
包含密钥v
,检查列表是否在
mydict[v]
包含key
.如果没有,则添加元素
v
到new_list
如果有,跳过添加v
套mydict[key]
到新创建的new_list
将其转换为代码非常简单,您甚至可以将其作为一个很酷的双行程序来编写。如果你遇到问题,有具体的问题,尽管问吧!在上运行此算法的代码之后
mydict
,我得到:u2nhd7ah2#
下面的代码解决了这个问题。如果有人想通过做一个花哨的单行线来炫耀自己,请随意:)