对于给定的输入:
x = [('a',11),('a',12),('b',13),('b',14)]
如何编写地图函数以获取输出:
x_map = {'a':[11,12], 'b':[13,14]}
答案 0 :(得分:0)
x = [('a',11),('a',12),('b',13),('b',14)]
d ={}
for i in x:
if i[0] not in d:
d[i[0]] = [i[1]]
else:
d[i[0]].append(i[1])
print d
输出:
{'a': [11, 12], 'b': [13, 14]}
我认为这就是您要寻找的
解决方案2:
x = [('a',11),('a',12),('b',13),('b',14)]
d={}
map(lambda a: d.setdefault(a[0], []).append(a[1]),x)
print d
输出:
{'a': [11, 12], 'b': [13, 14]}
答案 1 :(得分:0)
一种非常简单的方法是借助defaultdict
from collections import defaultdict
x = [('a',11),('a',12),('b',13),('b',14)]
x_map = defaultdict(list)
for k, v in x:
x_map[k].append(v)
# {'a': [11, 12], 'b': [13, 14]}
print dict(x_map)