Здравствуйте! <br/> Могу ли я попросить вас помочь мне с одной задачей? <br/> Условия задачи следующие: <br/> <br/> У нас есть список, содержащий вложенные словари: <br/> <pre><code class="python">lst = [ { 1: 11, 2: 12, 3: 13, }, { 1: 21, 2: 22, 3: 23, }, { 1: 24, 2: 25, 3: 26, }, ]</code></pre> <br/> <br/> Я пытался адаптировать код из другой задачи, но столкнулся с проблемой. <br/> <br/> Вот мой код: <pre><code class="python">summ = 0 for key1 in lst: for key2 in lst[key1]: summ += lst[key1][key2] print("Сумма элементов:", summ)</code></pre> <br/> <br/> Он генерирует ошибку: <br/> <blockquote>Traceback (most recent call last):<br/> for key2 in lst[key1]:<br/> TypeError: list indices must be integers or slices, not dict<br/> </blockquote> <br/> <br/> Ошибка возникает из-за того, что я пытался использовать код, который предназначен только для словарей, а не для вложенных в списки. <br/> <br/> Как я могу изменить существующий код, чтобы он суммировал элементы словарей внутри списка?
Здравствуйте! Вы правы в том, что ваша ошибка связана с тем, что вы пытаетесь использовать ключи словарей для доступа к элементам списка. Вместо этого вам нужно итерироваться по элементам списка, каждый из которых является словарем. Вот исправленная версия вашего кода, которая корректно суммирует значения всех словарей в списке: ```python lst = [ { 1: 11, 2: 12, 3: 13, }, { 1: 21, 2: 22, 3: 23, }, { 1: 24, 2: 25, 3: 26, }, ] summ = 0 for dictionary in lst: # Итерируемся по элементам списка, которые являются словарями for value in dictionary.values(): # Итерируемся по значениям словаря summ += value # Суммируем значения print("Сумма элементов:", summ) ``` В этом коде мы используем два цикла: 1. Внешний цикл `for dictionary in lst` проходит по каждому словарю в списке. 2. Внутренний цикл `for value in dictionary.values()` проходит по всем значениям текущего словаря. В результате вы получите сумму всех значений из каждого словаря в списке. При выполнении данного кода вы получите следующий результат: ``` Сумма элементов: 171 ```
Бабушкин способ:
lst = [ { 1: 11, 2: 12, 3: 13, }, { 1: 21, 2: 22, 3: 23, }, { 1: 24, 2: 25, 3: 26, }, ] add_lst = [] for i in lst: add_lst.append(sum(i.values())) print(sum(add_lst))