2012-08-10 44 views
0

我想找到存储在defaultdict(list)容器内的交集。这里是我的字典里,'d'查找值列表,“my_list”:从defaultdict调用列表的交集(列表)

d = { a: ['1', '2', '3'], 
     b: ['3', '4', '5'], 
     c: ['3', '6', '7'] 
    } 

my_list = ['a', 'b'] 

我想回名单的交集。根据previous post我尝试以下,但得到一个错误:类型错误:unhashable类型:“名单”

set.intersection(*map(set,d[my_list])) 

任何建议将受到欢迎。

感谢, 扎克CP

+1

你的前两行没有做任何事情,因为你只是重新分配'后直 – jamylak 2012-08-10 19:12:46

回答

8

的问题是,您试图访问d[my_list] - 一个列表是不是vlaid辞典键。一种替代方法:

set.intersection(*(set(d[k]) for k in my_list)) 
+0

感谢D'。那就像你可以要求的那样优雅。 – zach 2012-08-10 19:15:50