2013-05-28 61 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的想法雖然更好。