#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. Пожалуйста, поделитесь своим еще не работающим кодом-может быть, люди смогут вам помочь оттуда.