2013-05-29 61 views
0

我想把list放在dictionary裏面。我想這樣做:放在字典裏面的列表

trail = {[]} 

for i in states: 
    for j in states: 
     if(max_val < temp_V[j][i]): 
      max_val = temp_V[j][i] 
      trail[i].append(j) 

但我在trail = {[]}得到一個錯誤。我是Python的新手。我怎樣才能做到這一點?

+1

'{[]}'是一個不是字典的集合,集合不能包含不可取值。 –

+0

可能的重複:http://stackoverflow.com/questions/960733/python-creating-a-dictionary-of-lists –

回答

4

使用defaultdict

from collections import defaultdict 
trail = defaultdict(list) 

當您嘗試訪問它首次使expectd

trail[i].append(j) 

將工作將構建一個空列表,對於任意鍵。至於:

trail = {[]} 

你需要有一個有效的字典文字的鍵和相應的值例如。

{'a': 1, 'b': 2} 

{[]}改掉以使得set,而不是如。

>>> {1} 
set([1]) 

但只設置支持可哈希項,參見hash table,因此列表(其可以被修改)不是可哈希。