【发布时间】:2021-07-21 05:35:49
【问题描述】:
所以,这个问题很难浓缩成标题,但这里有一个详细的解释。
我有一个包含数千个键值对的大型字典,可能有以下示例:
dict = {'apple' : ['mint', 'nutmeg', 'cinnamon'], 'mint' : ['apple', 'orange', 'banana']}
注意“apple”是一个键,它的值是列表,列表包含“mint”元素。
在我的大字典“mint”中的某个地方也可能是一个键,它可能有一个包含元素“apple”的水果列表。因为它是字典第二个元素中的键。
问题是我想保留这对苹果和薄荷,无论哪个是关键,但我想要一个精炼的字典,它们不会形成重复。 p>
所以想要的字典是:
dict_2 = {'apple' : ['mint', 'nutmeg', 'cinnamon'], 'mint' : ['orange', 'banana']}
'mint' 列表中的 'apple' 元素已被删除,
或
dict_2 = {'apple' : ['nutmeg', 'cinnamon'], 'mint' : ['apple', 'orange', 'banana']}
'apple' 列表中的 'mint' 元素已被删除。
编辑:我找到了解决这个问题的方法。你可以在下面找到它
【问题讨论】:
-
欢迎来到 Stack Overflow!这不是一个人们为您编写代码以便您不必编写代码的网站。如果您需要帮助调试您编写的代码,您必须发布Minimal, Complete, and Verifiable example 并解释您的代码的具体问题。
-
用
(key, value)遍历dict.items()并为dict[key] 中的每个值检查字典中是否存在另一个(value, key)。如果是这样,请从其中一个中删除该对。另外,为了快速操作,我建议您使用set的值进行精炼。如果它适合您,您可以稍后将其转换为列表或保持不变。
标签: python list dictionary list-comprehension