Составьте список словарей, каждый из которых содержит несколько значений. Хотите превратить каждое уникальное значение в ключ и подсчитать их количество

#list #dictionary #for-loop #key #key-value

Вопрос:

У меня есть список словарей под названием Lunch_Options.

 Lunch_Options = [{'sandwich': 'PBJ', 'ingredients': ['bread', 'peanut butter', 'jelly']},  {'sandwich': 'Croque Monsieur', 'ingredients': ['ham', 'bread','cheese']},  {'sandwich': 'BLT', 'ingredients': ['bacon', 'lettuce', 'tomato', 'bread', 'cheese']}]  

Моя цель состоит в том, чтобы преобразовать это в словарь, который выглядит следующим образом, где значения хранятся в виде ключей, а количество вхождений каждого ингредиента является значением:

 Ingredients_Needed = {'bread': 3, 'lettuce': 1, 'jelly': 1, 'cheese': 2, 'ham':1, 'bacon':1, 'peanut butter': 1}  

Я попробовал несколько циклов for, чтобы получить список ингредиентов, и изучил возможность переключения значений и клавиш. Но я не хочу, чтобы оригинальные ключи были в моем выводе, и я полностью потерялся. Любая помощь в том, с чего начать, была бы очень признательна.

ОБНОВЛЕНИЕ: Я стал намного ближе, хотя это может быть не самым эффективным. На данный момент в моем выводе не хватает всего одного значения. listcount выдает правильные числа, но когда я заархивирую его в new_list, в хлебе и сыре не хватает одного счета. Почему?

 from collections import Counter   new_list = []  for i in Lunch_Options:  for j in i['ingredients']:   emptylist.append(j)    listcount = Counter(new_list).values()  dictionary = dict(zip(new_list, listcount))   print(dictionary)  Output: {'bacon': 1,  'bread': 2,  'cheese': 1,  'ham': 1,  'jelly': 1,  'lettuce': 1,  'peanut butter': 1}  

Комментарии:

1. Пожалуйста, поделитесь своим еще не работающим кодом-может быть, люди смогут вам помочь оттуда.