7

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

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

我想为列表中的每个元素创建一个列表,将其命名为字符串:

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

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

4

2 回答 2

32

您可以通过创建一个dict

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

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

于 2013-01-09T15:58:41.390 回答
6

始终使用Jon Clements 的答案


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

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

您必须事先知道该列表包含“apple”,以便稍后引用变量“apple”,此时您可以正常定义该变量。所以这在实践中是没有用的。鉴于乔恩的回答也产生了一本字典,使用globals.

于 2013-01-09T16:19:02.947 回答