私はこれは私が何をしたかである私は、この(所望の出力を)好きにそれを変換したいdictsdictsのリストをグループ化するには?
[
{"day":"10", "car":"bmw", "count":"3"},
{"day":"10", "car":"audi", "count":"2"},
{"day":"10", "car":"jeep", "count":"4"},
{"day":"11", "car":"bmw", "count":"6"},
{"day":"11", "car":"audi", "count":"7"},
{"day":"11", "car":"jeep", "count":"8"},
]
のリスト
[
{"day":"10", "bmw":"3","audi":"2","jeep":"4"},
{"day":"11","bmw":"6","audi":"7","jeep":"8"},
]
を持っています。これを達成するためのより良い最適な方法があります。
def dl():
list_of_dicts = [
{"day":"10", "car":"bmw", "count":"3"},
{"day":"10", "car":"audi", "count":"2"},
{"day":"10", "car":"jeep", "count":"4"},
{"day":"11", "car":"bmw", "count":"6"},
{"day":"11", "car":"audi", "count":"7"},
{"day":"11", "car":"jeep", "count":"8"},
]
result = []
data = {}
for item in list_of_dicts:
if not data.get(item["day"], False):
data[item["day"]] = []
data[item["day"]].append({item["car"]:item["count"]})
else:
data[item["day"]].append({item["car"]:item["count"]})
for key in data:
new_dict = {}
new_dict["day"] = key
for item in data[key]:
new_dict.update(item)
result.append(new_dict)
print result
return result
dl()
質問は正しい誰かがいない場合は、正しい
この質問に私を助けてください。私は、日ごとに新しい辞書を作成し、その日に基づいてグループに初心者
あなたは、少なくとも試みられてきたと私たちはあなたを助けるでしょうコード例を提供します。それ以外の場合は、本質的に私たちにあなたの宿題を依頼しています。 – MCBama
何かを要約しようとすると(JavaScriptやPythonで)、私はいつもreduce関数を見ようとします。 (map、reduce、filter関数を学んでください - 配列/リスト操作のために便利です)これを見てください:http://book.pythontips.com/en/latest/map_filter.html – Atlas7
あなたは本当に読む必要があります[MCVEドキュメント](https://stackoverflow.com/help/mcve)を参照してください。 しかし、答えるには、部分的な関数でreduceを使います。 'からfunctoolsインポート部分、削減;def f(day、x、y):x.update({y ['car']:y ['count']})y ['day'] == day else x; xを返します。 days = {dict_listのdict_のための{dict _ ['day']}; 出力= [1日の日数を減らす(部分(f、日)、dict_list、{'日':日}) ' – Grr