2024-10-01 04:48:07 发布
网友
我想使用字典理解来反转dictionarykey, value对,但是如果新字典有多个键值,那么它将被最后一个值替换。在
key, value
如果一个键被重复使用,是否可以在新字典中附加值?在
输入:
test_di = {'a':'1', 'b':'2', 'c':'3', 'd':'2'}
代码:
此代码的输出:
{'1': 'a', '3': 'c', '2': 'd'}
期望输出:
{'1': ['a'], '3': ['c'], '2': ['b','d']}
defaultdict将是最有效的方法:
defaultdict
from collections import defaultdict test_di = {'a':'1', 'b':'2', 'c':'3', 'd':'2'} d = defaultdict(list) for v,k in test_di.items(): d[k].append(v) print(d)
你的问题令人困惑,但听起来你想在字典中的一个键上存储多个值。在
这是不可能的,您可能需要查看存储列表的字典。在
用字典理解是不可能以合理的方式(即O(N)时间)来完成的。理解不能处理重复的值。在
O(N)
但是,使用常规循环很容易:
d = {} for key, value in old_d.items(): d.setdefault(value, []).append(key)
defaultdict
将是最有效的方法:你的问题令人困惑,但听起来你想在字典中的一个键上存储多个值。在
这是不可能的,您可能需要查看存储列表的字典。在
用字典理解是不可能以合理的方式(即
O(N)
时间)来完成的。理解不能处理重复的值。在但是,使用常规循环很容易:
相关问题 更多 >
编程相关推荐