gpt4 book ai didi

python dict通过键值删除重复值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:42 24 4
gpt4 key购买 nike

口述

dic = {
1: 'a',
2: 'a',
3: 'b',
4: 'a',
5: 'c',
6: 'd',
7: 'd',
8: 'a',
9: 'a'}

我想删除重复值只保留一对 K/V,关于这些重复值的“键”选择,它可以是最大值或最小值,或者随机选择那些重复项的键之一。

我不想使用 k/v 交换,因为它无法控制 key 选择。

以值“a”为例

 1: 'a', 
2: 'a',
4: 'a',
8: 'a',
9: 'a'

最大 key 将为 {9: 'a'},最小 key 将为 {1: 'a'},随机数将选择其中的任何一个。

而且,如果键是其他类型的可哈希值,例如字符串,那么如何进行这样的选择?

谁能给我一个想法?

谢谢!

最佳答案

您可以构建一个反向字典,其中的值是初始字典中所有键的列表。然后,您可以使用它做任何您想做的事情,最小值、最大值、随机值、交替最小值和最大值,或任何其他内容。

from collections import defaultdict

d = defaultdict(list)
for k,v in dic.iteritems():
d[v].append(k)

print d
# {'a': [1, 2, 4, 8, 9], 'c': [5], 'b': [3], 'd': [6, 7]}

关于python dict通过键值删除重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402346/

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