我有一个 list :
lst = [('a', 1), ('b', 2), ('c', 3), ('a', 4), ('c', 5)]
我想按元组的第一个元素分组并附加第二个元素:
group = {'a': [1, 4], 'b': [2], 'c': [3, 5]}
所以我的代码是这样的:
group = dict()
for e1, e2 in lst:
if e1 in group:
group[e1].append(e2)
else:
group[e1] = [e2]
我不喜欢这段代码的地方是我在组字典中查找键两次,一次用于命令
e1 in group
两个用于命令 group[e1] = ...
如果找到键并且不必再次查看以设置此键的值,是否有更好的方法来保留“指针”?
另外,如果使用库有更好的解决方案,请告诉我。
最佳答案
您可以使用 defaultdict
.
from collections import defaultdict
lst = [('a', 1), ('b', 2), ('c', 3), ('a', 4), ('c', 5)]
group=defaultdict(list)
for k,v in lst:
group[k].append(v)
group
# defaultdict(list, {'a': [1, 4], 'b': [2], 'c': [3, 5]})
关于python - 如何避免在 Python 中两次查找字典以获取/设置键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60614950/