我发现自己经常在 Python 中从平面列表中创建索引列表。这是一项非常常见的任务,我想知道是否有一个标准的实用程序可以用于它。
上下文是这样的:给定一个数组,我需要使用一些用于分组的键来创建一个较小数组的字典。
例如:
["Andy","Alice","Bob","Beth","Charlie"]
变成
{"A":["Andy","Alice"],"B":["Bob","Beth"],"C":["Charlie"]}
我的解决方案如下所示:
def make_index(data,key,value=lambda x:x):
d={}
for item in data:
k = key(item)
v = value(item)
try: d[k].append(v)
except KeyError: d[k]=[v]
return d
这很简单,但我是否正在重新发明在其他地方实施得更好的东西?