在Python中如何将字符串拆分为多个整数?

时间:2013-03-09 18:35:53

标签: python arrays string csv

我正在读一个字符串,它总是由空格分隔的五个数字,我想将它分成五个单独的整数,以便我可以单独处理它们。

到目前为止,我有:

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

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

2 个答案:

答案 0 :(得分: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列出了您的整数。用它做你想做的......

答案 1 :(得分:0)

也许这对某人有帮助,但是如果你想在字符串为0字节长时返回一个空数组而不是一个错误,你可以使用内联改进一个衬里,如下所示:

s = "1 2 3"
result = [] if s == "" else map(int, s.split(" "))
print result