Из списка найдите те значения, сложение которых составляет 9
aList=[81,26,27,19,108]
output, 81(because: 8+1),27(because: 2+7) and 108 (because:1+0+8)
Я попробовал 2 подхода:
1-й подход: я не смог найти способ получить значение, просто получитьсумма
s=[81,18]
sum=0
for l in s:
while l:
l,dig=divmod(l,10)
sum=sum+dig
print(sum)
2-й подход: действительно противный.Возьмите отдельные значения из списка, преобразуйте их в строковые, чтобы разделить их, и снова преобразуйте в int.
s=[81] #9
sum=0
for item in s: #81
item=str(item) # 81 to string so I can get 8 and 1
for i in item:
while i:
i =int(i)
i,dig=divmod(i,10)
sum=sum+dig
print(sum,item)
Проблема: В обоих случаях это работает только тогда, когда в списке есть одно значение.Когда у меня больше 1 значения aList = [81,18], оно дает мне сумму этих 2.
Я был бы признателен за некоторые подсказки / идеи по этому вопросу.Заранее спасибо.