Здравствуйте! <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))