我正在阅读一个由五个数字组成,用空格分隔的字符串,我想将其拆分为五个单独的整数,以便我可以分别处理它们。
到目前为止,我有:
reader = csv.reader([data.data], skipinitialspace=True)
for r in reader:
print r
我可以将这些值打印出来,但如何将它们存储为单独的整数?
我正在阅读一个由五个数字组成,用空格分隔的字符串,我想将其拆分为五个单独的整数,以便我可以分别处理它们。
到目前为止,我有:
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())
来转换字符串s中的数字为整型。 - Pavel Anossovr
是什么吗?看起来 r
是一个 list
对象。 - Srikar Appalaraju