我正在尝试接受由逗号分隔的整数序列,并希望修剪随之而来的任何空格。我正在使用下面的代码。values = raw_input("Input some comma seprated numbers : ")print "Values are", valuesArr = values.split(",")print "Arr is", Arra = [int(x) for x in Arr.split()]print "a is", a在执行上面的代码片段时,我收到以下异常,$ python accept.pyInput some comma seprated numbers : 1,3, 2Values are 1,3, 2Arr is ['1', '3', ' 2']Traceback (most recent call last): File "accept.py", line 20, in <module> a = int(Arr)TypeError: int() argument must be a string or a number, not 'list'如果我提供诸如 1,3,2 或 1 3 2 之类的输入,我可以通过更改代码来成功。但如果我将两者混合使用,就会出现问题。使用 Python 版本 2。(不介意 Python3 解决方案 :))
2 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
示例输出与您提供的代码片段不匹配,因为错误行是a = int(Arr). 在示例代码中还有一个split()on Arr,它应该引发一个AttributeError,因为Arr它已经是一个列表。
要从字符串的开头/结尾删除空格,请使用strip()方法:
l = values.split(",")
a = [int(x.strip()) for x in l]
ValueError 如果数组包含无法转换为整数的字符串,包括数字之间有空格时,则会引发。
如果要删除所有空格,包括数字之间的空格(将“1 2 3”变为“123”),可以使用类似[src] 的内容:
l = "".join(values.split())
a = [int(x.strip()) for x in l.split(",")]
添加回答
举报
0/150
提交
取消