【问题标题】:is it possible to reverse a dictionary in python using dictionary comprehension是否可以使用字典理解在 python 中反转字典
【发布时间】:2023-04-06 02:26:01
【问题描述】:

我想使用字典推导来反转字典 key, value 对,但如果新字典有多个键值,那么它将被最后一个值替换。

如果键重复,是否可以使用推导追加到新字典中的值?

输入:

test_di = {'a':'1', 'b':'2', 'c':'3', 'd':'2'}

代码:

{v:k for k,v in test_di.items()} 

这段代码的输出:

{'1': 'a', '3': 'c', '2': 'd'}

期望的输出:

{'1': ['a'], '3': ['c'], '2': ['b','d']}

【问题讨论】:

  • “反向”是什么意思?在 Python 中,字典是无序的。
  • 我认为他想用键换取值,用值换取键。然后它会使用该键来查找该键最近分配的值?
  • 您能否编辑您的问题以至少包含一个示例输入字典和所需的输出,最好是您尝试过的字典理解?
  • 根据值对 dict.items() 进行排序,然后使用 itertools.groupby 按值对它们进行分组,但这是 O(N Log N) 且不值得努力。

标签:
python
dictionary
dictionary-comprehension