将字符串转换为由空格分隔的整数

时间:2014-02-01 08:12:23

标签: python python-2.7 integer

如何从字符串中提取整数(用空格分隔的整数)并将它们分配给不同的变量 例如,
给定字符串:"2 3 4 5"
分配:n=2, m=3, x=4, y=5

2 个答案:

答案 0 :(得分:3)

像(阅读评论):

>>> s = "2 3 4 5"
>>> s.split()  # split string using spaces  
['2', '3', '4', '5'] # it gives you list of number strings
>>> n, m, x, y = [int(i) for i in s.split()] # used `int()` for str --> int
>>> n            # iterate over list and convert each number into int 
2                # and use unpack to assign to variables      

答案 1 :(得分:2)

字符串中的值数可能是可变的。在这种情况下,您可以将变量分配给字典,如下所示:

>>> s = "2 3 4 5"
>>> temp = [(count, int(value)) for count, value in enumerate(s.split(' '), 1)]
>>> vars = {}
>>> for count, value in temp:
...    vars['var' + str(count)] = value
>>> vars
{'var4': 5, 'var1': 2, 'var3': 4, 'var2': 3}
>>> vars['var2'] 
3

如果你真的不想要一个词典,你可以考虑以下几点:

>>> temp = [(count, int(value)) for count, value in enumerate(s.split(' '), 1)]
>>> for count, value in temp:
...     locals()['var{}'.format(count)] = value
>>> var2 
3

locals()['var{}'.format(count)] = value将添加一个名为'var {count}'的局部变量,并为其赋值。 locals()显示局部变量及其值。

请记住:只有在你真正知道自己在做什么的情况下才这样做。另请阅读Python documentation中关于locals的说明:“不应修改此词典的内容;更改可能不会影响解释器使用的本地和自由变量的值。”