2014-09-12 173 views
0

我想在Python中創建一個集合的數組。在Python中添加字典作爲字典的值

這就是我試圖運行時,它與我的代碼做以下

for doc in collection.find(): 
     pageType = doc.get('pageType') 
     title = doc.get('title') 
     _id = doc.get('_id') 
     value = {'pageType' : pageType, 'id': _id} 
     setValues = pageDict.get(title) 
     if not setValues : 
      setValues = set() 
      pageDict[title] = setValues 
     setValues.add(value) 

我獲得以下錯誤
setValues.add(值) 類型錯誤:unhashable類型:「字典」

我發現我無法將可變值設置爲字典的關鍵字,但我在此將其添加爲字典的值。從本質上講,我的字典價值是一個包含另一個字典的集合。 我如何在Python中實現這一點?我可以用什麼其他數據結構來實現這一目標?

+2

不能將字典添加到一組是什麼'setValues.add(值)'是幹什麼的,你可以添加http://stardict.sourceforge.net/Dictionaries.php下載到一個列表,你爲什麼要將setValues從'pageDict.get(title)'改爲'setValues = set()'? – 2014-09-12 21:55:10

+0

是否有任何理由需要一套而不是另一種結構?當一個元素是否存在時,通常使用集合,而不是元素本身。 – user2085282 2014-09-12 21:57:47

+0

我正在使用set來避免重複。 – konquestor 2014-09-12 22:02:09

回答

0

我用frozsenSet的值添加到組和它的工作

setValues.add(frozenSet(value.items())