Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从变量中设置变量?_Python - Fatal编程技术网

Python 从变量中设置变量?

Python 从变量中设置变量?,python,Python,我有很多很多字符串,格式都是这样的:“lot1”,“lot2”,“lot3”。。。我想做的是使用函数参数来确定要使用哪个变量。下面是一个伪示例: def printlot(someInt): print lot%i % (someInt) 基本上,我想使用多个字符串来形成另一个要使用的字符串的名称。这似乎很简单,但在我两年的Pythoning工作中,我还没有学会如何做到这一点。您可以使用vars内置函数作为字典访问所有可见变量: vars()['lot%d' % someInt] 可

我有很多很多字符串,格式都是这样的:“lot1”,“lot2”,“lot3”。。。我想做的是使用函数参数来确定要使用哪个变量。下面是一个伪示例:

def printlot(someInt):
    print lot%i % (someInt)

基本上,我想使用多个字符串来形成另一个要使用的字符串的名称。这似乎很简单,但在我两年的Pythoning工作中,我还没有学会如何做到这一点。

您可以使用
vars
内置函数作为字典访问所有可见变量:

vars()['lot%d' % someInt]
可以使用
全局
局部
访问不同的作用域


然而,请注意,这通常被认为是“非音速”行为。与创建许多类似命名的变量不同,更具Python风格的方法是创建一个列表或字典。

您可以使用
vars
内置函数作为字典访问所有可见变量:

vars()['lot%d' % someInt]
可以使用
全局
局部
访问不同的作用域


然而,请注意,这通常被认为是“非音速”行为。与创建许多类似命名的变量不同,一种更具python风格的方法是创建一个列表或字典。

尼诺所说的是正确的,但您确实希望显式地使用dict。也就是说,您希望执行以下操作:

lot_data = {'lot1': 10, 'lot2': 20, 'lot3': 30}
i = 2
print lot_data['lot%d' % i]
与此相反:

lot1 = 10
lot2 = 20
lot3 = 30
i = 2
print vars()['lot%d' % i]

尼诺所说的是正确的,但你确实需要明确地使用dict。也就是说,您希望执行以下操作:

lot_data = {'lot1': 10, 'lot2': 20, 'lot3': 30}
i = 2
print lot_data['lot%d' % i]
与此相反:

lot1 = 10
lot2 = 20
lot3 = 30
i = 2
print vars()['lot%d' % i]

原因是这样做通常是件坏事。用字典代替。创建一个名为
lots
的dict,并通过
lots[i]
访问您的值。原因是这样做通常是不好的。请改用字典。创建一个名为
lots
的dict,并通过
lots[i]
访问您的值。