我正在嘗試接受由逗號分隔的整數序列,并希望修剪隨之而來的任何空格。我正在使用下面的代碼。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
提交
取消