我讀一個字符串,它總是用空格隔開五個號碼,我想這分裂成五個獨立的整數,這樣我就可以分別處理它們。在Python中,我如何將一個字符串拆分爲多個整數?
到目前爲止我有:
reader = csv.reader([data.data], skipinitialspace=True)
for r in reader:
print r
,讓我打印出來的值,我該如何將它們存儲爲單個整數?
我讀一個字符串,它總是用空格隔開五個號碼,我想這分裂成五個獨立的整數,這樣我就可以分別處理它們。在Python中,我如何將一個字符串拆分爲多個整數?
到目前爲止我有:
reader = csv.reader([data.data], skipinitialspace=True)
for r in reader:
print r
,讓我打印出來的值,我該如何將它們存儲爲單個整數?
你可以不喜歡這樣。假設s
是從reader
開始的行。
>>> s='2 3 4 5 6'
>>> s.split(' ')
['2', '3', '4', '5', '6'] #just split will give strings
>>> [int(i) for i in s.split(' ')] #typecasting to ints
[2, 3, 4, 5, 6] #now you have ints
注意的一點是,雖然,我假設有從reader
行沒有其它數據類型。否則,這段代碼有可能崩潰。你當然可以用try: except:
來規避這個問題,或者使用更多的微調解析技術。
更新0:從@Pavel Annosov - map(int, s.split())
明亮的一個班輪。 map是一個漂亮的python內置函數,它可以讓你將函數映射到任何可迭代的函數。
更新1:它,看看如何將工作相當簡單。而是使之更清楚@ user2152165
ints_list = []
for r in reader:
ints_list = map(int, r.strip().split(' '))
ints_list
有你的整數列表。你要什麼吧......
或者簡單的'map(int,s.split())'。 – 2013-03-09 18:43:47
我在哪裏添加行[int(i)for i in s.split('')]?我是否完全替換了我正在使用的代碼? – ianphil397 2013-03-09 18:48:56
對不起,我一個C編碼器,這是使用Python(或任何高級語言),我的第一天,感謝您的幫助。 – ianphil397 2013-03-09 18:55:33
也許這是有幫助的人,但如果你想,而不是返回一個錯誤的空數組當字符串是0字節長,可以提高一個襯墊與內聯,如果這樣的話:
s = "1 2 3"
result = [] if s == "" else map(int, s.split(" "))
print result
這是您正在閱讀的csv文件還是隻是間隔整數列表? – 2013-03-09 18:37:53
你可以顯示輸出,如果你的上面的代碼? – pradyunsg 2013-03-09 18:40:57