如何从字符串中提取整数(用空格分隔的整数)并将它们分配给不同的变量
例如,
给定字符串:"2 3 4 5"
分配:n=2, m=3, x=4, y=5
答案 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
的说明:“不应修改此词典的内容;更改可能不会影响解释器使用的本地和自由变量的值。”