簡體   English   中英

如何使python中的所有字典值都是唯一的?

[英]How to make all the dictionary values unique in python?

我想要一個解決方案,使字典的所有鍵都具有唯一的值,並為此盡可能刪除最小的值以使每個值都是唯一的。 例如:

my_dict = {'c': 3, 'e': 3, 'a': 2, 'f': 2, 'd': 2}

對於上面的字典,我需要從 'f' 中提取 2 次,從 'e' 中提取 3 次,從 'd' 中提取 1 次。 結果將是 6 這意味着{'c':3, 'a':2, 'd':1} 刪除密鑰不是問題。

請注意,我們可以刪除 'c' 而不是 'e' 或 'a' 而不是 f'' 應該頒布或刪除哪個鍵並不重要,重要的是具有唯一值

這是我嘗試過的:

for k, v in my_dict.items():
    c = 0
    while len(my_dict.values()) > len(set(my_dict.values())):
        my_dict[k] = my_dict[k] -1
        c += 1

這不是您期望的結果,但它符合要求。

my_dict = {'c': 3, 'e': 3, 'a': 2, 'f': 2, 'd': 2}

to_remove = []
result = {}
for key, value in my_dict.items():
    while value > 0:
        if value not in to_remove:
            to_remove.append(value)
            result[key] = value
            break
        else:
            value -= 1
result

簡單的方法:

my_dict = {'c': 3, 'e': 3, 'a': 2, 'f': 2, 'd': 2}

rd = {v: k for k, v in my_dict.items()}
my_dict = {v: k for k, v in rd.items()}
print(my_dict)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM