在Python中从另一个列表中命名新列表

时间:2011-03-11 05:16:15

标签: python list

这可能听起来像是一个来自Python noob的奇怪问题,但这是交易。我有一个包含一堆(字符串)条目的列表。我想获取其中一个条目,在其末尾添加另一个字符串,然后创建一个具有该名称的新数组。例如,我有

list=["foo","bar"]

我希望得到一些影响

的东西
fooblah = []

我一直在尝试这样做

list[0] + "blah" = []

显然这不起作用,因为第一部分是字符串而不是变量名,但我不知道如何解决它。从我读过的其他人的问题来看,解决方案可能是使用字典而不是(?),但说实话我还不确定字典是如何工作的。

谢谢,J。

2 个答案:

答案 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是内置类型的名称,因此将其用作变量名称被视为不良做法。

此外,这是一个非常不寻常的需求;你想要完成什么?也许有更好的方法?