我怎样才能从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
没有任何好处。