2011-10-09 35 views
-3

我有dct = {'word1': 23, 'word2': 12, 'word1' : 7, 'word2':2},我需要得到列表時,鑰匙不重複,幷包含從字典中的所有值如何在字典中插入重複值?

f.e: lst = ('word1 23 7', 'word2 12 2')

是否有可能使它像這樣在Python?

+5

不能*有*「DCT = {'word1':23,'word2':12,'word1':7,'word2':2}「。嘗試在解釋器中使用。你有幾個字典作爲輸入? – Tibo

+3

如果你允許重複密鑰,它不再是一本字典 – NullUserException

+0

另請參見http://stackoverflow.com/q/7706981/78845 – Johnsyweb

回答

5

不能有你所描述的。您可能有這樣的:

dct = {} 

dct['word1'] = 23 
dct['word2'] = 12 
dct['word1'] = 7 
dct['word2'] = 2 

但最後你會最終是這樣的:

{'word1': 7, 'word2': 2} 

鍵在字典中不能重複。如果你的代碼實際上是建立像我的第一個例子,你可能想是這樣的:

from collections import defaultdict 

dct = defaultdict(list) 

dct['word1'].append(23) 
dct['word2'].append(12) 
dct['word1'].append(7) 
dct['word2'].append(2) 

之後你也會有這樣的:

defaultdict(<type 'list'>, {'word1': [23, 7], 'word2': [12, 2]}) 
+0

它看起來是什麼操作系統正在尋找是一個'集'價值'Dict'寧比'list'值'dict'。 –

+0

thx我不知道。所以對於這種情況它是無用的。所以我有這樣的字符串列表:'word1 23''word 1 12'word1 65''word2 23'等等,所以我需要的是創建新的列表,其中單詞不會重複,但將包含他們發生的所有行。 fe:word1 23 12 65,更多http://stackoverflow.com/questions/7706981/how-to-split-and-compare-part-of-string-in-list – user986761

+0

@ user986761,閱讀下半部分的答案。 –