gpt4 book ai didi

Python如何在字典中查找重复值

转载 作者:太空狗 更新时间:2023-10-30 03:01:16 25 4
gpt4 key购买 nike

好吧,我想知道如何在字典中找到单个键的重复值。

所以我有

import collections
s = [('yellow', 1), ('blue', 2), ('yellow', 1), ('blue', 4), ('red', 1)]
d = collections.defaultdict(list)
for k, v in s:
d[k].append(v)

输出:

defaultdict(<class 'list'>, {'blue': [2, 4], 'yellow': [1, 1], 'red': [1]})

如您所见,“黄色”具有重复值。

我想知道,找出字典中某个键中是否存在重复值的最佳 pythonic 方法是什么。找到它们后,将它们从字典中删除。

最佳答案

您可以在追加之前进行检查:

d = collections.defaultdict(list)
for k, v in s:
if v not in d[k]: # if value not in list already
d[k].append(v)

或者使用集合来存储值:

d = collections.defaultdict(set)
for k, v in s:
d[k].add(v) # sets don't have duplicates so we don't need a check here

如果您不想要 defaultdict(<class 'list'>输出只是用 dict(d) 使 d 成为普通字典或使用 dict.setdefault使用普通的字典,

d = {}
for k, v in s:
d.setdefault(k,set())
d[k].add(v)

关于Python如何在字典中查找重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26080158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com