1 python dictionary list-comprehension dictionary-comprehension
我的代码如下:
for user,score in data:
if user in res.keys():
res[user] += [score]
else:
res[user] = [score]
Run Code Online (Sandbox Code Playgroud)
其中 data 是按如下方式排列的列表的列表:
data = [["a",100],["b",200],["a",50]]
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
res = {"a":[100,50],"b":[200]}
Run Code Online (Sandbox Code Playgroud)
是否可以通过单个字典理解来做到这一点?
这可以使用dict.setdefault
或简化collections.defaultdict
前任:
data = [["a",100],["b",200],["a",50]]
res = {} #or collections.defaultdict(list)
for k, v in data:
res.setdefault(k, []).append(v) #if defaultdict use res[k].append(v)
print(res)
Run Code Online (Sandbox Code Playgroud)
输出:
{'a': [100, 50], 'b': [200]}
Run Code Online (Sandbox Code Playgroud)