如何将 python 字典 d = {1:10, 2:20, 3:30, 4:30}
转换为 {10: [1], 20: [2], 30: [3, 4]}
?
我需要反转字典,值应该成为另一个字典的键,值应该是列表中的键,即也在排序的事物中。
原文由 Amit Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何将 python 字典 d = {1:10, 2:20, 3:30, 4:30}
转换为 {10: [1], 20: [2], 30: [3, 4]}
?
我需要反转字典,值应该成为另一个字典的键,值应该是列表中的键,即也在排序的事物中。
原文由 Amit Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 python 字典中反转键和值有点棘手。您应该记住,python 字典必须有一个 unique
键。
所以,如果你知道在反转当前字典的键和值时会有一个唯一的键,你可以使用一个简单的 dict comprehension
就像这个例子:
{v:k for k,v in my_dict.items()}
但是,您可以使用 groupby
来自 itertools
模块,如下例所示:
from itertools import groupby
a = {1:10, 2:20, 3:30, 4:30}
b = {k: [j for j, _ in list(v)] for k, v in groupby(a.items(), lambda x: x[1])}
print(b)
>>> {10: [1], 20: [2], 30: [3, 4]}
原文由 Chiheb Nexus 发布,翻译遵循 CC BY-SA 3.0 许可协议
尝试这个!