2017-02-20 39 views
1

我需要做一個只包含鍵的字典。只用鑰匙製作字典?

我不能使用d.append(),因爲它不是一個列表,既不是setdefault,因爲它需要2個參數:一個鍵和一個值。

它應該爲以下幾點:

d = {} 

加 「一」:

d = {"a"} 

加 「B」:

d = {"a", "b") 

添加 「C」 ......

#Final result is 

d = {"a", "b", "c"} 

我需要獲得這個結果的代碼是什麼? 或者它是另一種解決方案?如製作一個列表。

l = ["a", "b", "c"] # and transform it into a dictionnary: d = {"a", "b", "c"} ? 
+2

'd = {「a」,「b」,「c 「}這不是字典它只是一個'集合' –

+2

如果你用'd = set()'而不是'd = {}'開始,它會起作用的。 – khelwood

+1

你需要'set'而不是字典 –

回答

-1

應該這樣做:

l = ["a", "b", "c"] 

d = {k:None for k in l} 

由於@Rahul在評論中說,d = {"a", "b", "c"}不是一個有效的字典的定義,因爲它缺少的值。您需要將值分配給字典才能存在的鍵,如果您缺少值,則可以只分配None並稍後進行更新。

+0

感謝您的回答,但這不是我想要的。這返回 {'a':None,'b':None,'c':None}我不想要「None」 – MartinM

+0

@MartinM你必須擁有一些東西。它不一定是'沒有'。它可能是一個空字符串('''')。 –

+0

Rahul K P和khelwood找到了解決方案。不管怎麼說,還是要謝謝你! – MartinM

4

A dict只有鑰匙被稱爲set

以空集而不是字典開頭。

d = set() 
d.add('a') 
d.add('b') 
d.add('c') 

您也可以通過{}表達創建一組:

d = { 'a', 'b', 'c' } 

或使用列表:

d = set(['a', 'b', 'c']) 
0

你需要一個set不是字典,

l = ["a", "b", "c"] 
d = set(l)