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

Posted

技术标签:

【中文标题】在 Python 中,如何将字符串拆分为多个整数?【英文标题】:In Python how do I split a string into multiple integers? 【发布时间】:2013-02-25 04:52:35 【问题描述】:

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

目前为止:

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

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

【问题讨论】:

这是您正在读取的 csv 文件还是只是间隔整数的列表? 如果上面的代码可以显示输出吗?? 【参考方案1】:

你可以这样做。假设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()) 在哪里添加行 [int(i) for i in s.split(' ')]?我是否完全替换了我正在使用的代码? 对不起,我是一名 C 程序员,这是我使用 Python(或任何高级语言)的第一天,感谢您的帮助。 这很酷。我们都听到学习。祝python好运,如果我的回答有帮助,请投票和/或接受我的回答... 我收到以下错误:ints_list = map(int, r.strip().split(' ')) AttributeError: 'list' object has no attribute 'strip'

以上是关于在 Python 中,如何将字符串拆分为多个整数?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过拆分其中的字符串将单个列拆分为多个。 -Pandas Python [重复]

通过python将一个大字符串拆分为包含'n'个单词的多个子字符串

如何在Python中将具有名称(1个或多个单词)和数字的单行输入字符串拆分为[“名称”,“数字”]?

将整数拆分并存储为两个字节

如何将 Python 模块拆分为多个文件?

将字符串拆分为多个原始类型