如何在函数中使用vars()[x]命令?

2024-09-30 12:15:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的比下面的例子要长一点,但是无论如何,它不起作用,我也不知道怎么弄清楚。我需要使用像strain1、strain2这样的变量来分配数组,但首先,我尝试分配一个空列表[]。如果我不使用函数,那就行了。我需要多次使用这个块,这就是为什么我需要这个函数

def test():
    for i in xrange(11):
         v = 'strain' + '%d' % i
         vars()[v] = []

test()
strain5

Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    strain5
NameError: name 'strain5' is not defined

Tags: 函数intest列表fordef数组vars
1条回答
网友
1楼 · 发布于 2024-09-30 12:15:50

你要找的是^{} function

vars()(不带参数)返回当前名称空间,函数是本地名称空间,而不是模块全局名称空间

演示:

>>> def test():
...     for i in xrange(11):
...          v = 'strain' + '%d' % i
...          globals()[v] = []
... 
>>> test()
>>> strain5
[]

但是,您需要重新考虑您的变量。通常,您确实希望创建一个列表或字典:

strains = [[] for _ in xrange(11)]

创建11个嵌套列表,您可以使用strains[0]strains[1]等进行访问

相关问题 更多 >

    热门问题