如何创建可变数量的变量?

如何在Python中完成变量变量?

这是一个精心设计的手动条目,例如:变量变量

我听说这是一个坏主意,但它是Python中的一个安全漏洞。真的吗?


繁华开满天机
浏览 1064回答 6
6回答

叮当猫咪

您可以使用词典来完成此任务。字典是键和值的存储。>>> dct = {'x': 1, 'y': 2, 'z': 3}>>> dct{'y': 2, 'x': 1, 'z': 3}>>> dct["y"]2您可以使用变量键名来实现变量的影响,而不会产生安全风险。>>> x = "spam">>> z = {x: "eggs"}>>> z["spam"]'eggs'对于你想要做类似事情的情况var1 = 'foo'var2 = 'bar'var3 = 'baz'...列表可能比dict更合适。列表表示有序的对象序列,带有整数索引:l = ['foo', 'bar', 'baz']print(l[1])           # prints bar, because indices start at 0l.append('potatoes')   # l is now ['foo', 'bar', 'baz', 'potatoes']对于有序序列,列表比整数键类型的字典更方便,因为列表支持迭代的索引顺序,切片,append和其他操作,将需要尴尬密钥管理与字典。

慕的地10843

使用内置getattr函数按名称获取对象的属性。根据需要修改名称。obj.spam = 'eggs'name = 'spam'getattr(obj, name)  # returns 'eggs'

慕斯709654

每当你想使用变量变量时,最好使用字典。所以不要写作$foo = "bar"$$foo = "baz"你写mydict = {}foo = "bar"mydict[foo] = "baz"这样您就不会意外地覆盖以前存在的变量(这是安全方面),并且您可以拥有不同的“命名空间”。

素胚勾勒不出你

您也可以使用namedtuple集合模块代替字典,这样可以更轻松地访问。例如:# using dictionaryvariables = {}variables["first"] = 34variables["second"] = 45print(variables["first"], variables["second"])# using namedtupleVariables = namedtuple('Variables', ['first', 'second'])vars = Variables(34, 45)print(vars.first, vars.second)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python