有没有一种方法可以从列表/元组等中提取字符串变量作为其他变量的变量名?

2024-10-16 20:40:34 发布

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

首先,我只想说,我知道你不能给“文字”赋值。你知道吗

1 = 15, "word" = 5

但你可以输入

word = 5

如果我做了mylist=[“word”,“black”,“dance”,“bread”]

我完全理解mylist[0]是一个变量,我明白了,但是没有一个奇特的python方法可以逃脱我的检测,例如

MyList = ["word", "black","dance", "bread"]
OtherList = [ OtherClass(), 1, "Much Brave", "Such Awesome"]
for i in MyList:
    i.supersweetliteralmethodthatIvewantedsincethedaysofQBasic() = OtherList[i]

男孩会做梦。你知道吗


Tags: 方法wordawesomeblack文字赋值muchdance
2条回答

这将由(请注意,这被认为是非常糟糕的做法,我不建议这样做):

locals().update(dict(zip(MyList, OtherList)))

对于当前作用域,使用globals()进行全局赋值。你知道吗

您可能不想将其放入范围中的变量中,但可以将其作为对象的属性:

class namespace(object): pass
ns = namespace()
ns.__dict__.update(dict(zip(MyList, OtherList)))
ns.word == OtherList[0] # True

或者如果你想使用for循环

class namespace(object): pass
ns = namespace()
for k, v in zip(MyList, OtherList):
    ns.__dict__[k] = v

ns.word == OtherList[0] # True

相关问题 更多 >