猿问

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


肥皂起泡泡
浏览 339回答 2
2回答

摇曳的蔷薇

示例输出与您提供的代码片段不匹配,因为错误行是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(",")]
随时随地看视频慕课网APP

相关分类

Python
我要回答