不可用的类型列表...什么....比较值到键

时间:2013-11-27 09:12:38

标签: python

即将完成一个项目,最后一部分是让我。说我有以下代码

t = {'CSE 2320' : ['lame']}
h = {'MATH': ['professional', 'CSE 2320', ['note: see approved list\n']]}
for keys in h :
    if h[keys] in t :
        print "its here"

为什么我会收到unhashable type : 'list'错误?我只是想知道CSE 2320是否属实。这是什么问题/

2 个答案:

答案 0 :(得分:0)

你基本上在做“如果列表在哈希中”这是不允许的,你只能做“如果哈希中的元素”。

for keys in h:
    for value in h[keys]:
        if value in t:
            print "it's here"

这仍然需要防范你在那里的嵌套列表,但是应该足以让你再次去。

答案 1 :(得分:0)

您需要遍历h[key]返回的列表中的项目,因为该列表中的最后一项也是一个列表(['note: see approved list\n']),因此您还需要处理这些项目。 :

t = {'CSE 2320' : ['lame']}
h = {'MATH': ['professional', 'CSE 2320', ['note: see approved list\n']]}
for keys in h :
    if any(k in t for k in h[keys] if not isinstance(k, list)):
            print "its here"