2013-05-29 55 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,因此列表(其可以被修改)不是可哈希。