我正在尝试接受用逗号分隔的整数序列,并希望修整其附带的所有空白。我正在使用以下代码。
values = raw_input("Input some comma seprated numbers : ")
print "Values are", values
Arr = values.split(",")
print "Arr is", Arr
a = [int(x) for x in Arr.split()]
print "a is", a
在执行上述代码段时,我遇到了以下异常,
$ python accept.py
Input some comma seprated numbers : 1,3, 2
Values are 1,3, 2
Arr 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解决方案:))
答案 0 :(得分:1)
示例输出与您提供的代码段不匹配,因为错误行为a = int(Arr)
。在示例代码中,split()
上还有一个Arr
,由于AttributeError
已经是一个列表,因此应该引发Arr
。
要从字符串的开头/结尾删除空格,请使用strip()
方法:
l = values.split(",")
a = [int(x.strip()) for x in l]
如果数组包含无法转换为整数的字符串(包括数字之间存在空格的情况),则会引发 ValueError
。
如果要删除 all 空格,包括数字之间的空格(将“ 1 2 3”变成“ 123”),则可以使用 [src]之类的东西 :
l = "".join(values.split())
a = [int(x.strip()) for x in l.split(",")]
答案 1 :(得分:-1)
Python 3.6
values = input("Input some comma seprated numbers : ")
print("Values are :", values) #Output: 1,2 3,4
val = ",".join(values.split(" "))
print("Values seperated with comma :", val) #Output: 1,2,3,4
a = val.split(',')
print("a is", a) #Output: a is ['1', '2', '3', '4']