Поиск суммы всех элементов списка в списке, который имеет символы в 1 строке

87
7

ab = [ ['5','6','7','8','9','10'],['1','2','3'],['3','4','5']]
print sum([sum(int(x) for x in y for y in ab])])

Мне нужно найти сумму всех элементов в ab с помощью одного оператора печати. Я пытаюсь преобразовать каждый элемент каждого из списков в int и создать список, который имеет сумму каждого отдельного списка. Я получаю синтаксическую ошибку и не знаю, как это сделать.

спросил(а) 2021-01-19T19:16:25+03:00 2 месяца, 3 недели назад
1
Решение
106

Вы определяете for циклы для й (внутреннего контура) до того, как for контура для у (внешний контур). Вот почему он не работает. Вам нужна print sum(int(x) for y in ab for x in y) Также может быть лучше использовать генератор здесь, потому что вы не используете его повторно, поскольку он более эффективен.

ответил(а) 2021-01-19T19:16:25+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема