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

4 投票
1 回答
21365 浏览
提问于 2025-04-17 18:31

我正在读取一个字符串,这个字符串总是由五个数字组成,中间用空格隔开。我想把这些数字分开,变成五个单独的整数,这样我就可以分别处理它们。

到目前为止,我有:

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 里存放着你的整数列表。你可以随意使用它……

撰写回答