Суммируйте цифры каждого целого в списке - PullRequest
2 голосов
/ 07 января 2020

Я пытался суммировать цифры для каждого элемента в списке и печатать сумму каждого элемента за раз, но мой код ниже дает мне только 6 6 6. Мой желаемый результат - 6 1 2.

#pythonCode#

 my_list = [15, 10, 20]

 sum = 0

 m = ""

 for i in range(0, 3):

while m != 0:

    rem= my_list[i] % 10

    m = my_list[i] //10

    my_list[i] = m

    sum = sum + rem

print(sum)

1 Ответ

3 голосов
/ 07 января 2020

Вы можете сделать это, используя map для применения лямбда-функции - если я правильно понимаю желаемый результат:

>>> my_list = [15, 10, 20]
>>> list(map(lambda x: sum(int(s) for s in str(x)), my_list))
[6, 1, 2]

Выписано полностью, это примерно эквивалентно :

my_list = [15, 10, 20]

for integer in my_list:
    total = 0
    for digit in str(integer):
        total += int(digit)
    print(f"The sum of {integer} is {total}")

Вывод:

The sum of 15 is 6
The sum of 10 is 1
The sum of 20 is 2
...