Pythonでフラットなリストからインデックス付きリストを頻繁に作成しています。これは非常に一般的なタスクであるため、使用する必要のある標準のユーティリティがあるかどうか疑問に思いました。
コンテキストは次のとおりです。配列が与えられた場合、グループ化のためにいくつかのキーを使用して、より小さな配列のdictを作成する必要があります。
例:
["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
それは単純ですべてですが、他の場所でより適切に実装されているものを再発明していますか?