Functools.reduce в Python не работает должным образомPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Functools.reduce в Python не работает должным образом

Сообщение Anonymous »


Я хотел бы суммировать ключи словарей, вложенных в список, с помощью функции functools.reduce

Я могу сделать это БЕЗ функции functools.reduce с помощью следующей простой программы:

dict1 = {'a': '1', 'b': '2'} dict2 = {'a': '5', 'b': '0'} dict3 = {'a': '7', 'b': '3'} список_данных = [дикт1, дикт2, дикт3] итог_а = 0 итог_б = 0 для записи в data_list: total_a += eval(запись['a']) total_b += eval(запись['b']) печать (total_a) печать (total_b) Однако, как я уже сказал, я хотел бы получить те же результаты, используя вместо этого метод functools.reduce.

Вот моя попытка использовать functools.reduce с лямбда-выражением:

из functools import уменьшить dict1 = {'a': '1', 'b': '2'} dict2 = {'a': '5', 'b': '0'} dict3 = {'a': '7', 'b': '3'} список_данных = [дикт1, дикт2, дикт3] total_a = уменьшить(лямбда x, y: int(x['a']) + int(y['a']),data_list) total_b = уменьшить(лямбда x, y: int(x['b']) + int(y['b']),data_list ) печать (total_a) печать (total_b) К сожалению, я получаю следующую ошибку и не знаю почему:

TypeError: объект 'int' не подлежит подписке Кто-нибудь знает, почему я получаю эту ошибку?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»