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

use*_*851 6 python

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

names = ['apple','orange','banana'] 
Run Code Online (Sandbox Code Playgroud)

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

apple = []  
orange = []  
banana = []  
Run Code Online (Sandbox Code Playgroud)

我怎么能用Python做到这一点?

Jon*_*nts 30

你可以通过创建一个dict:

fruits = {k:[] for k in names}
Run Code Online (Sandbox Code Playgroud)

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


roo*_*oot 6

总是使用Jon Clements的回答.


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

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

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