2016-09-24 135 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] 

我来总结TE输出。但是当一个数值超过两位数时,我必须为上面的例子做:(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谢谢 – jozofe

回答

0

您可以先计算出的数字总和再总结得出的值(因为数字总和永远是个位数。x//10 + x%10将计算数字和两位数字的值。所以,如果doubled是包含值列表[12, 10, 6,...]

sum([x//10 + x%10 for x in doubled])