我怎样才能从string列表中创build列表?

我有一个string列表,如:

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

我想为列表中的每个元素创build一个列表,这个列表将完全按string命名:

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

我怎么能在Python中做到这一点?

你可以通过创build一个dict来做到这一点:

 fruits = {k:[] for k in names} 

然后访问每个(例如:) fruits['apple'] – 你不想走在单独的variables之路!

总是用Jon Clements的答案 。


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

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

你将不得不事先知道该列表包含“苹果”,以便稍后引用variables“苹果”,在这一点上,你可以正常定义variables。 所以这在实践中是没有用的。 鉴于Jon的答案也会产生一个字典,使用globals没有任何好处。