4

我正在读取一个始终由空格分隔的五个数字的字符串,我想将其拆分为五个单独的整数,以便我可以分别处理它们。

到目前为止,我有:

reader = csv.reader([data.data], skipinitialspace=True)
for r in reader:
    print r

这允许我打印出这些值,我如何将它们存储为单独的整数?

4

1 回答 1

15

你可以这样做。假设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有你的整数列表。用它做你想做的事...

于 2013-03-09T18:38:02.013 回答