这可能听起来像是一个来自Python noob的奇怪问题,但这是交易。我有一个包含一堆(字符串)条目的列表。我想获取其中一个条目,在其末尾添加另一个字符串,然后创建一个具有该名称的新数组。例如,我有
list=["foo","bar"]
我希望得到一些影响
的东西fooblah = []
我一直在尝试这样做
list[0] + "blah" = []
显然这不起作用,因为第一部分是字符串而不是变量名,但我不知道如何解决它。从我读过的其他人的问题来看,解决方案可能是使用字典而不是(?),但说实话我还不确定字典是如何工作的。
谢谢,J。
答案 0 :(得分:6)
我会使用python dictionary他们几乎可以使用任何东西作为索引而不是整数。如果你动态创建本地/全局变量,那么你的代码可能会变得非常混乱和不可读。
例如
l = ["foo","bar"]
d = {}
d[l[0] + "blah"] = []
d[l[0] + "blah"].append("foo")
使用字典会给你一些其他优点,例如,你可以遍历你创建的所有新列表。
for k,v in d.iteritems():
print "{0} --> {1}".format(k,v)
答案 1 :(得分:1)
好吧,如果你真的想这样做,可以通过globals()
或locals()
方法返回当前符号的字典:
globals()[list[0] + 'blah'] = [ ]
请注意list
是内置类型的名称,因此将其用作变量名称被视为不良做法。
此外,这是一个非常不寻常的需求;你想要完成什么?也许有更好的方法?