我遇到以下下面的代码错误,基本上下面就是我要做的,我该怎么修改我的代码,而无需改变原有的目标...类型错误:unhashable类型:“名单”
- 如果任何一个值,是不具有值的密钥对从输入
删除该行是否有任何值的是具有值的键,为每个值(这是键)递归地检查它的值,直到有没有,并删除重复的行...示例输入和输出如下所示:
KEY VALUES 353311 344670 332807 353314 338169 334478 334478 123456 34567 123456 98670 34567 11111 353314 353311 348521 350166 350168 350169 350170 350166 348521 350168 348521 350169 348521 350170 348521 EXPECTED OUTPUT 344670 332807 353314 353311 338169 334478 123456 34567 98670 11111 348521 350166 350168 350169 350170
代码: -
from collections import OrderedDict def main(): with open('gerrit_dependencylist.txt') as f: dic = OrderedDict() seen = set() for line in f: #print dic,line spl = line.split() #print "SPL" #print spl if len(spl) == 1: key = spl[0] v = '' else: print "LINE" print line key, v = spl[0], spl[1:] for value in v: if value in dic and dic[value] == [""]: del dic[v] for k1,v1 in dic.iteritems(): if key in v1: dic[k1].append(v) break else: dic[key] = [v] if __name__ == '__main__': main()
OUTPUT: -
LINE
332807 353314
LINE
338169 334478
LINE
334478 123456 34567
Traceback (most recent call last):
File "tesst.py", line 29, in <module>
main()
File "tesst.py", line 21, in main
del dic[v]
File "/usr/lib/python2.7/collections.py", line 67, in __delitem__
dict_delitem(self, key)
TypeError: unhashable type: 'list'