我正在学习学习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__'
答案 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