在Python中如何将字符串分割为多个整数?
我正在读取一个字符串,这个字符串总是由五个数字组成,中间用空格隔开。我想把这些数字分开,变成五个单独的整数,这样我就可以分别处理它们。
到目前为止,我有:
reader = csv.reader([data.data], skipinitialspace=True)
for r in reader:
print r
这段代码让我可以打印出这些值,我该怎么把它们存储为单独的整数呢?
1 个回答
16
你可以这样做。假设 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
不过要提醒一下,我假设这一行里没有其他数据类型。如果有的话,这段代码可能会出问题。当然,你可以使用 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
里存放着你的整数列表。你可以随意使用它……