这可能是一个非常简单的问题,但我被困在这里。
我有变量val为val="mandy"
,现在我想创建一个名称为val内容的列表。即“mandy”。那么如何在python中定义mandy=[]
。
就像“$$”相当于PHP。
答案 0 :(得分:2)
你可以在Python中做这样的事情,但是这样做是非常非Pythonic的(而这是我收集的常见PHP习语)。请勿以不打算使用的方式使用该语言。
使用字典(Python中最大限度优化的数据类型)可以更好地完成您要做的事情:
>>> val = "mandy"
>>> mydict = {}
>>> mydict[val] = []
>>> mydict[val].append("Hello")
>>> mydict[val].append("Mandy")
>>> mydict
{'mandy': ['Hello', 'Mandy']}
答案 1 :(得分:1)
没有pythonic方法来创建具有变量名称的变量。这样做是一种不好的做法。相反,使用字典:
val = "mandy"
mynames = {}
mynames[val] = []
您现在可以访问mynames["mandy"]
来获取或修改列表。
请注意,您可以通过修改locals
在某些Python实现中实现类似php的行为,例如
>>> locals()['mandy'] = []
>>> mandy
[]
这样做强烈反对,无法正常工作,但有些Python实现。
答案 2 :(得分:0)
你不能(没有黑客)而不应该。
改为使用字典values = {"mandy": []}
。
为什么你想要一个你不知道名字的局部变量?!如果您在编码时知道它的名字,请在花园种类的作业中使用它。如果不是,它不应该是局部变量。
答案 3 :(得分:0)
使用dict
。您可以使用getattr
/ setattr
或使用globals()
来创建名称,但您很可能不需要它。
val = 'foo'
d = { val: [] }
答案 4 :(得分:-3)