2013-05-28 62 views
0

在Python中,假设我有一个列表:的Python:拆分列表成多个列表

instruments = ['apd', 'dd', 'dow', 'ecl'] 

我怎么可以拆分这些列表,这样它会创建:

apd[] 
dd[] 
dow[] 
ecl[] 

感谢您的帮助。

+0

为什么你想这样做?你的用例是什么? –

+1

一吨人问这个相同的问题,但没有人**真的**想这样做,使用字典 – jamylak

回答

3

你可以这样做:

dictionaries = {i:[] for i in instruments} 

,你,你会参考各表是这样的:

dictionaries['apd'] 
dictionaries['dd'] 
dictionaries['dow'] 
dictionaries['ecl'] 

这被认为比实际上不必在当前名字空间的列表更好的做法,因为它既污染又不污染。

mshsayem有将列表放入当前范围的方法,但问题是,将它们放入当前范围会带来哪些好处?

标准使用情况:

  • 你已经知道项目的名称,并希望直接名字引用它们,即apd.append
  • 你不知道的名字,但你”将使用evallocals拿到名单,即eval('apd').appendlocals()['apd'].append

既可以满足使用字典:

  • dictionaries['<some name can be set programatically or using a constant>'].append
+0

完美,更清洁,更容易使用字典。谢谢。 – user1594369

1

试试这个:

instruments = ['apd', 'dd', 'dow', 'ecl'] 
l_dict = locals() 
for i in instruments: 
    l_dict[i] = [] 

这将在局部范围内创建apddddowecl名单。 蛇和Cofee的想法虽然更好。