如何从字符串列表中创建列表?

时间:2013-01-09 15:55:13

标签: python

我有一个字符串列表,例如:

names = ['apple','orange','banana'] 

我想为列表中的每个元素创建一个列表,该列表的名称与字符串完全相同:

apple = []  
orange = []  
banana = []  

我怎样才能在Python中这样做?

2 个答案:

答案 0 :(得分:30)

您可以通过创建dict

来完成此操作
fruits = {k:[] for k in names}

然后访问每个(例如:) fruits['apple'] - 你不想走分别变量的道路!

答案 1 :(得分:6)

始终使用Jon Clements' answer


globals()返回支持全局命名空间的字典,此时您可以像对待任何其他字典一样对待它。 你不应该这样做。它会导致命名空间的污染,可以覆盖现有的变量,并且更难以调试由此产生的问题。

for name in names:
    globals().setdefault(name, [])
apple.append('red')
print(apple)  # prints ['red']

你必须事先知道列表中包含'apple'以便稍后引用变量'apple',此时你可以正常定义变量。所以这在实践中没用。鉴于Jon的答案也产生了字典,使用globals没有任何好处。