2010-02-11 32 views

回答

236

dict.fromkeys([1, 2, 3, 4])

這實際上是一個類方法,所以它適用於字典亞類(如collections.defaultdict)爲好。可選的第二個參數指定要使用的密鑰的值(默認爲None。)

+77

小心初始化的東西可變的:如果你調用,如'dict.fromkeys([1,2,3],[])',所有的鍵都被映射到相同的列表中,修改其中一個將會修改它們。 – charleslparker

44
dict.fromkeys(keys, None) 
+0

真棒,我想空名單,''dict.fromkeys(鍵,[])'' – muon

+4

@ muon這幾乎肯定不是你想要的,看到[charleslparker評論](http://stackoverflow.com/questions/2241891) /如何做初始化-A-字典與 - 鍵從 - 一個列表和空值 - 在 - python的#comment25131847_2241904)。 – gerrit

+0

@gerrit最近怎麼樣,你知道嗎? – muon

6
d = {} 
for i in keys: 
    d[i] = None 
+1

爲什麼Python拋出如下錯誤:'TypeError:'type'object is not iterable'? – FaCoffee

+1

@FrancescoCastellani因爲'list'是一種類型。除非你有像'list = []'這樣的東西,上面的方法總是會給你同樣的錯誤 – smac89

139

無人照顧,得到一個字典-理解溶液?

>>> keys = [1,2,3,5,6,7] 
>>> {key: None for key in keys} 
{1: None, 2: None, 3: None, 5: None, 6: None, 7: None} 
+1

這隻適用於Python 3.x –

+25

我相信它是backported爲2.7 – wim

+8

這很好,不會受到參考問題,接受答案。 – charleslparker

7
>>> keyDict = {"a","b","c","d"} 

>>> dict([(key, []) for key in keyDict]) 

輸出:

{'a': [], 'c': [], 'b': [], 'd': []} 
+1

儘管此代碼可能會回答這個問題,但提供有關_how_和/或_why_的其他上下文可以解決問題,從而提高答案的長期價值。 –

+0

'keyDict'的名稱會讓人誤解,因爲第一行代碼返回的是set,而不是'dict'。 –

相關問題