Доступ к элементам из словаря в кортеже в Python - PullRequest
0 голосов
/ 04 мая 2020

Предположим, у меня есть кортеж в следующих строках:

[('Cheeseburger', 'Entree', {'Buns': 1, 'Tomato': 1, 'Lettuce': 3, 'Onion': 1}), ('Salad', 'Entree', {'Buns': 0, 'Tomato': 2, 'Lettuce': 4, 'Onion': 3}), ...]

Как я могу получить доступ к значениям в словаре, чтобы сложить их. Словарь находится в списке кортежей.

Например, я ищу сумму для каждого продукта питания (например, чизбургер: 6, салат: 7).

Ответы [ 2 ]

1 голос
/ 04 мая 2020

В этом случае вы можете рассматривать его как многомерный список и получать доступ к элементам

list = [('Cheeseburger', 'Entree', {'Buns': 1, 'Tomato': 1, 'Lettuce': 3, 'Onion': 1}),
    ('Salad', 'Entree', {'Buns': 0, 'Tomato': 2, 'Lettuce': 4, 'Onion': 2})]

for i in range (len(list)):
    for j in range (len(list[i])):
        if type(list[i][j]) == dict:
            x = list[i][j].items()
            # Remaing operations that you want to perform based on your need

Надеюсь, это поможет

1 голос
/ 04 мая 2020

Предполагая, что в каждом кортеже элемент словаря имеет индекс 2, вы можете просто сделать это:

food_list = [('Cheeseburger', 'Entree', {'Buns': 1, 'Tomato': 1, 'Lettuce': 3, 'Onion': 1}),
('Salad', 'Entree', {'Buns': 0, 'Tomato': 2, 'Lettuce': 4, 'Onion': 3}), ...]
food_dict = {k[0] : sum(k[2].values()) for k in food_list}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...