2016-09-24 3 views
1

У меня есть код:Как суммировать две цифры в списке

creditcardnumber = input("Enter Here:") 

def luhn(creditcardnumber): 
    k = list((creditcardnumber)) 
    odd = [int(k[i]) for i in range(1, len(k),2)][::-1] 
    doubled = [2*d for d in odd] 
    print(doubled) 


print(luhn(creditcardnumber)) 

Виль напечатать что-то вроде:

[12, 10, 8, 6, 4, 2, 2, 16, 12, 8, 4] 

я должен подвести тэ выход. НО, когда значение имеет более двух цифр, я должен выполнить для примера выше: (1 + 2) + (1 + 0) + 8 + 6 + 4 + 2 + 2 + (1 + 6) и т. Д.

может кто-нибудь мне помочь?

+0

http://stackoverflow.com/questions/29197219/credit-card-number-validator-doesnt-work-correctly/29197921#29197921 –

+1

@PadraicCunningham thanks – jozofe

ответ

0

Вы можете сначала вычислить значные суммы, а затем суммировать полученные значения (поскольку суммы цифр всегда однозначными числами. x//10 + x%10 рассчитает цифру сумму стоимости двух цифр. Так что, если doubled список, содержащий значения [12, 10, 6,...]

sum([x//10 + x%10 for x in doubled]) 
Смежные вопросы