试图添加第一个& python中列表的最后一个整数

时间:2018-04-22 17:23:52

标签: python

嗨,我刚开始为python启动了一个在线课程,只是为了我,其中一个练习要求我从你输入的列表中添加第一个和列表整数,我想我已经拥有它,但不太确定它一直给我一个错误,

  

ValueError:具有基数10的int()的无效文字

我的代码是

userList = list(map(int, input().split(',')))
intTotal = userList[1] + userList[len userList]
print (intTotal)

现在,我如何理解, [1] 将是第一个userList值,因为它是列表中的第一个位置,而 [len userList] 应该给我最后的位置,因为它给出了列表的长度作为位置编号。

然后它应该打印变量intTotal

如果你能告诉我哪里出错了,那么这就是王牌!

1 个答案:

答案 0 :(得分:2)

您的错误很可能是您的输入类似于1, 2, 3, 4, 5,

当您对此使用split(',')时,您必须在列表末尾添加一个空白条目,您必须考虑该条目。您可以在列表理解中检查这一点。

要访问列表的最后一个元素,您可以使用arr[len(arr)-1],或者使用支持负索引的Python arr[-1]

以下是您的代码的工作版本,并进行了上述更改:

userList = [int(x.strip()) for x in input().split(',') if x]
intTotal = userList[0] + userList[-1]
print (intTotal)

示例运行:

>>>1, 2, 3, 4, 5,
6

您可以通过使用isdigit()来过滤输出错误输入,这样可以让用户输入字母,但它只会添加输入的第一个和最后一个数字,这样可以更加健壮:

userList = [int(x) for x in input().split(',') if x.isdigit()]

示例运行:

>>> 1,2,a,3,4,6,b,4
5