python - 如果某个键的值不止一次,则从列表中删除该元素

标签 python list dictionary list-comprehension

所以,这个问题很难浓缩到标题中,但这里有一个详细的解释。
我有一个包含数千个键值对的大字典,可以包含以下示例:

dict = {'apple' : ['mint', 'nutmeg', 'cinnamon'], 'mint' : ['apple', 'orange', 'banana']}
注意 ' 苹果 ' 是一个键,它以列表作为其值,并且该列表包含 ' 薄荷 ' 元素。
在我的大词典中的某处' 薄荷 ' 也可以是一个键,它可以有一个包含元素 ' 的水果列表。苹果 '。因为它是字典第二个元素中的键。
问题是我想保留那对苹果和薄荷,不管哪一个是关键,但我想要一个精制字典,它们不会形成重复项 .
所以所需的字典是:
dict_2 = {'apple' : ['mint', 'nutmeg', 'cinnamon'], 'mint' : ['orange', 'banana']}
'mint' 列表中的 'apple' 元素已被删除,
或者
dict_2 = {'apple' : ['nutmeg', 'cinnamon'], 'mint' : ['apple', 'orange', 'banana']}
其中“apple”列表中的“mint”元素已被删除。
编辑 : 我已经找到了解决这个问题的方法。你可以在下面找到它

最佳答案

mydict = {'apple' : ['mint', 'nutmeg', 'cinnamon'], 'mint' : ['apple', 'orange', 'banana']}
由于这看起来像是家庭作业,而且您还没有展示任何作业或提出具体问题,因此我将为您提供有关算法的提示,但编写代码取决于您。
你想要
  • 迭代每个 key, value在字典里
  • 例如key = "apple"; value = ['mint', 'nutmeg', 'cinnamon']
  • 迭代每个元素 v `值:
  • mydict包含 key v ,
  • 检查列表是否在 mydict[v]包含 key .
  • 如果没有,添加元素 vnew_list
  • 如果是,请跳过添加 v

  • 套装mydict[key]到新创建的 new_list


  • 将其转换为代码非常容易,您甚至可以将其编写为很酷的两行代码。如果您遇到问题并有具体问题,请随时提问!
    mydict 上运行此算法的代码后,我得到:
    {'apple': ['nutmeg', 'cinnamon'], 'mint': ['apple', 'orange', 'banana']}
    

    关于python - 如果某个键的值不止一次,则从列表中删除该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67290459/

    相关文章:

    python - 以编程方式将模块/函数集转换为 Python 类

    python - Pandas 中的可链接加权平均计算

    python - 使用 pathlib 作为 S3 路径

    python - 如何从列表值中删除引号和括号

    python - 如何使用 for 循环将列值添加到数据框字典中,以便每个数据框都有一个唯一的列?

    python - 计算字典中键在特定范围内的值的移动平均值

    python - 创建一个函数,由于某种原因陷入循环

    python - 将一列列表拆分为不同的列时出错

    python - 矩阵列表理解均值

    c++ - 映射导致段错误。如何增加内存力?