辞書の配列[{},{},{}]から特定の値が入ったやつらを取り出す[{},{}]
cars = [{'colors':'black,red,pink'},
{'colors':'blue,yellow,green'},
{'colors':'blue,red,gold,white'}]
carsにはcolorsの他に色々なKeyと値が入っています。
colorsの値は見たまんまの文字列が入っています。
blue,red,gold,white
carsからcolorsのそれぞれ一色が入った辞書らを取り出すにはどうすればよいですか?
色を選択してそれに該当する車等にフィルターをかけるということです。
c = [x for car in cars for color in car['colors'].split(',')]
# cは["black","red","pink","blue","yellow","green","blue","red","gold","white"]
# blue 2 重複を消したcolorsに多い順に並べた配列
for key, count in collections.Counter(c).most_commons():
# 失敗例
print(dict(filter(lambda x: x in key, cars)))
理想
# red [{'colors':'blue,red,gold,white'},{'colors':'black,red,pink'}]
#blue [{'colors':'blue,yellow,green'}, {'colors':'blue,red,gold,white'}]
#pink [{'colors':'black,red,pink'}]
わかりづらくて申し訳有りません。
carsから20台選択する = cars[:20]
carsからredのある台数分を全て取得 = cars[colors['red']]