我读一个字符串,它总是用空格隔开五个号码,我想这分裂成五个独立的整数,这样我就可以分别处理它们。在Python中,我如何将一个字符串拆分为多个整数?
到目前为止我有:
reader = csv.reader([data.data], skipinitialspace=True)
for r in reader:
print r
,让我打印出来的值,我该如何将它们存储为单个整数?
我读一个字符串,它总是用空格隔开五个号码,我想这分裂成五个独立的整数,这样我就可以分别处理它们。在Python中,我如何将一个字符串拆分为多个整数?
到目前为止我有:
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())'。 – 2013-03-09 18:43:47
我在哪里添加行[int(i)for i in s.split('')]?我是否完全替换了我正在使用的代码? – ianphil397 2013-03-09 18:48:56
对不起,我一个C编码器,这是使用Python(或任何高级语言),我的第一天,感谢您的帮助。 – ianphil397 2013-03-09 18:55:33
也许这是有帮助的人,但如果你想,而不是返回一个错误的空数组当字符串是0字节长,可以提高一个衬垫与内联,如果这样的话:
s = "1 2 3"
result = [] if s == "" else map(int, s.split(" "))
print result
这是您正在阅读的csv文件还是只是间隔整数列表? – 2013-03-09 18:37:53
你可以显示输出,如果你的上面的代码? – pradyunsg 2013-03-09 18:40:57