-4
私は同じ値のcategoryName
に基づいて辞書をグループ化しようとしています。同じキーに基づいて辞書のリストから新しい辞書を作成する
リスト辞書のソース
data = [{'category_id': 1,
'categoryName': 'Civil',
'author': 'x',
'title': 'Stone'},
{'category_id': 1,
'categoryName': 'Civil',
'author': 'y',
'title': 'House'},
{'category_id': 2,
'categoryName': 'Programming',
'author': 'x',
'title': 'Python'},
{'category_id': 2,
'categoryName': 'Programming',
'author': 'y',
'title': 'Java'}]
私の目標出力
new_data = {'Civil':[{'Title':'Stone', 'author':'x'},
{'Title':'House', 'author':'y'}],
'Programming':[{'Title':'Python', 'author':'x'},
{'Title':'Java', 'author':'y'}]}
私の試みこれまで:
categories = set([i['categoryName'] for i in data])
との区分名の
ビルドリスト次にトンを構築彼は新しい弁護士と
d = {}
for cat in categories:
d[cat] = []
for book in data:
if book['category_name'] == cat:
d[cat].append(book)
と働いています。しかし、私はこれが正しいかエレガントな方法だとは思わない。
もっと多くのソリューションをお探しですか?ありがとう!
尋ねる前に自分で何をしようとしましたか? – depperm
@deppermが言ったように、あなたのコードを最初に示してください。また、 'defaultdict'を参照すると、ここで本当に役に立ちます。 – theBrainyGeek
@deppermこんにちは、ごめんなさい、自分の試みを追加するのを忘れてしまった。私は質問を編集しました。ありがとう! – Steven