Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Names_Initializing - Fatal编程技术网

Python:我能创建一组对象吗?在这些对象中,对象名是通过遍历字符串列表来确定的

Python:我能创建一组对象吗?在这些对象中,对象名是通过遍历字符串列表来确定的,python,loops,names,initializing,Python,Loops,Names,Initializing,我是新手,所以我的标题可能有误导性和/或毫无意义 我有32个对象要用循环初始化。我在一个列表中有所需的对象名称,称之为A。在一个列表中有所需的值,称之为B 我想做一些类似的事情: for(a,b) in zip(A,B): a = b 显然,这不会起作用,因为它只会更改列表A的内容 为清楚起见,如果列表A的定义如下: A = [ 'Game' 'Developer' ] B喜欢: B = [ 'Super Mario 64' 'Nintendo' ] I would want a loop

我是新手,所以我的标题可能有误导性和/或毫无意义

我有32个对象要用循环初始化。我在一个列表中有所需的对象名称,称之为A。在一个列表中有所需的值,称之为B

我想做一些类似的事情:

for(a,b) in zip(A,B):
a = b

显然,这不会起作用,因为它只会更改列表A的内容

为清楚起见,如果列表A的定义如下:

A = [
'Game'
'Developer'
]
B喜欢:

B = [
'Super Mario 64'
'Nintendo'
]

I would want a loop that would execute the code:

Game = 'Super Mario 64'
Developer = 'Nintendo'
如何执行此操作?

您可以使用
globals()
执行此操作

A=[
“游戏”,
“开发商”
]
B=[
“超级马里奥64”,
“任天堂”
]
对于拉链(a,b)中的(a,b):
globals()[a]=b
打印(游戏)
打印(显影剂)

在这种情况下,
dict(zip(A,B))
不要这样做。在全局范围内,只有一些简单的方法可以实现这一点,而在局部范围内,这是不可能的。如果要将字符串对象映射到其他对象,请使用字典,这就是
dict
对象的映射。@PumpMan您试图实现的是一个坏主意。很好的等效方法是使用dict.@PumpMan抱歉,我遗漏了一件事,那就是链接问题的答案没有涵盖为什么这是一个坏主意,但注释却涵盖了这一点。“显然这不起作用,因为它只会更改列表a的内容。”实际上,它不会更改
a
的内容。在任何情况下,该链接都会帮助您,因为它告诉您使用
dict
,而不是动态创建变量,这是一个糟糕的设计选择。@PumpMan不要使用该链接,它会使您的代码更难理解。改用dict。这对我来说比dict更容易理解,所以我会用dictthis@wjandrea他没有要求最佳实践。这正是他要求的。当然,我同意你的观点,不建议这样做,但同样,它完全符合OP的要求。@ywbaek是的,它完全符合OP的要求,但这并不意味着它是个好主意。如果不推荐,为什么要推荐?至少在你的答案的顶部加上一个警告。这对我正在尝试做的事情非常有效。我没有就我正在创建的代码或创建它的目的发布确切的细微差别。这也是一个非常简单的解决方案。所以我看不出有什么问题。。。
Super Mario 64
Nintendo