gpt4 book ai didi

python - 相当于 Python 中的 "genvarname"

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:04 25 4
gpt4 key购买 nike

如何从字符串(例如字母和数字的串联)生成变量名?

在 Matlab 中,可以使用 genvarname 轻松完成此任务。

最佳答案

这是一个非常的糟糕方法(未定义的行为),但我认为它展示了通向更合理技术的道路。

您当前的命名空间实际上是一本字典:

>>> local_namespace = locals()
>>> name = "myVarName"
>>> local_namespace[name] = 'VarData'
>>> myVarName
'VarData'

但这不是很 DRY - 你必须将变量的名称写两次!最好使用一个变量来存储动态创建的变量的名称,这样我们就不必输入两次:

>>> name
'myVarName'

显然不适用于此。但我们可以再次使用我们的字典:

>>> local_namespace[name]
'VarData'

现在我们可以存储和调用与变量关联的值。但是等等 - 不需要为此使用特殊的 locals() 字典 - 普通的字典就可以!

>>> d = {}
>>> d[name] = 'VarData'
>>> d[name]
'VarData'

现在我们有了所有这些额外的好处,比如能够在列表中跟踪其中几个变量的名称:

>>> l = []
>>> l.append('myVarName')
>>> l.append('anotherVarName')

字典甚至为我们做到了这一点:

>>> d['anotherVarName'] = 123
>>> d.keys()
['myVarName', 'anotherVarName']

除非您正在做非常古怪的事情,否则很难想象构造变量名称会比使用字典更有用。

关于python - 相当于 Python 中的 "genvarname",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20508106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com