在python中接受逗号分隔的数字以及拆分空格

时间:2018-09-20 03:26:04

标签: python

我正在尝试接受用逗号分隔的整数序列,并希望修整其附带的所有空白。我正在使用以下代码。

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解决方案:))

2 个答案:

答案 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']