如何避免在Python中获取/设置键值时两次查找字典?

4 python dictionary group-by aggregate key

我有一个清单:

lst = [('a', 1), ('b', 2), ('c', 3), ('a', 4), ('c', 5)]
Run Code Online (Sandbox Code Playgroud)

我想按元组的第一个元素进行分组并附加第二个元素:

group = {'a': [1, 4], 'b': [2], 'c': [3, 5]}
Run Code Online (Sandbox Code Playgroud)

所以我的代码如下所示:

group = dict()
for e1, e2 in lst:
    if e1 in group:
        group[e1].append(e2)
    else:
        group[e1] = [e2]
Run Code Online (Sandbox Code Playgroud)

我不喜欢这段代码的是,我在组字典中查找一个键两次,一次用于命令e1 in group,两次用于命令group[e1] = ...

如果找到键,是否有更好的方法来保留“指针”并且不必再次查看来设置该键的值?
另外,如果有更好的使用库的解决方案,请告诉我。

Ch3*_*teR 5

您可以使用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]})
Run Code Online (Sandbox Code Playgroud)