在python中添加数字列表中的最后一位数字

时间:2013-07-13 03:00:51

标签: python typeerror

我正在学习学习Python的课程。该问题要求输入数字列表并添加输入数字的最后一位数字。这是我想出的代码。不笑(我是新人)。该代码适用于我的Python 2.7.5版本。但是,我在他们的网站上收到错误。有没有更好的方法来添加列表中的最后一个数字?我想我正在将列表作为整数进行投射,而他们的网站不喜欢这样,但我不确定。感谢您的帮助,谢谢。

def getSumOfLastDigits(numList):
    total = 0
    for num in numList:
        total += int(num[-1])
    return total

input_Nums = raw_input('Enter the list of numbers: ').split(',')

print getSumOfLastDigits(input_Nums)

错误:

Traceback (most recent call last):
File "Code", line 4, in getSumOfLastDigits
TypeError: 'int' object has no attribute '__getitem__'

2 个答案:

答案 0 :(得分:1)

我不知道为什么会发生错误并且不应该发生错误。为了实现你的目标,有更多的pythonic方式。

有关整数列表:

>>> ints = [10, 11, 12, 11110, 112]
>>> sum(x % 10 for x in ints)
5
>>> 

对于包含以:,

分隔的数字的字符串
>>> ints = '10, 11, 12, 11110, 112'
>>> sum(int(x[-1]) for x in ints.split(','))
5
>>> 

答案 1 :(得分:0)

如果您的numList是字符串列表,那么您不应该根据您提供的代码获得该错误。否则,如果它是一个数字列表,那么您无法使用num[-1]访问整数的最后一位数字。你可以做的是采用10的模数:

def getSumOfLastDigits(numList): 
    total = 0 
    for num in numList: 
        total += num % 10
    return total