如何将一个string拆分为Python中的整数?

我有一个string"42 0" (例如),需要获得两个整数的数组。 我可以在空间上做一个.split吗?

6个答案远远不够,因为OP可以通过翻译testing来回答自己的问题:

 >>> "42 0".split() # or .split(" ") ['42', '0'] 

答:是的。

但没有具体指出,如果不提供参数,默认情况下split方法会将其分割为空格(空格,制表符, 回车符 换行符 )。

 >>> " \r 42\n\r \t\n \r0\n\r\n".split() ['42', '0'] 

另外,当你想将迭代项目转换为内置插件如intfloatstr等时,使用map通常比使用list comprehensions更清晰。

 >>> map(int, "42 0".split()) [42, 0] 
 text = "42 0" nums = [int(n) for n in text.split()] 
 l = (int(x) for x in s.split()) 

如果你确定总是有两个整数你也可以这样做:

 a,b = (int(x) for x in s.split()) 

或者如果你计划在之后修改数组

 l = [int(x) for x in s.split()] 

这应该工作:

 [ int(x) for x in "40 1".split(" ") ] 

当然你可以调用split ,但是它会返回string,而不是整数。 做

 >>> x, y = "42 0".split() >>> [int(x), int(y)] [42, 0] 

要么

 [int(x) for x in "42 0".split()] 

其他答案已经表明,你可以使用split()来获取值列表 。 如果你在问Python的数组 ,下面是一个解决scheme:

 import array s = '42 0' a = array.array('i') for n in s.split(): a.append(int(n)) 

编辑:一个更简洁的解决scheme:

 import array s = '42 0' a = array.array('i', (int(t) for t in s.split()))