Как из строки с числами сделать словарь вида { число: сумма его цифр }?
Нужно, чтобы сгенерировался словарь, в котором ключом будет число из строки, а его значением - сумма цифр этого числа. Но мне выводится словарь только с последним значением из строки.
def order_weight(string):
a = string.split()
for i in a:
c = {i: sum(map(int, str(i)))}
return c
print(order_weight('16 17 18'))
Потому что в цикле переопределяете свой словарь: c = {i: sum(map(int, str(i)))}
А надо было только заполнять значения, т.е.: c[i] = sum(map(int, str(i)))
И предварительно (до цикла) инициализировать сам словарь.