我使用有两个列表,files
和g_list
这都是常规列表从嵌套列表重复。我想删除files
中的重复项并且与g_list
匹配。我发现这个解决方案;删除使用列表作为键
from collections import OrderedDict as odict
od = odict.fromkeys(zip(files, g_list))
files, g_list = zip(*od)
因为我已经修改g_list
是嵌套的列表,但现在当我运行上面的代码中,我得到这个TypeError
:
File "/usr/lib/python2.7/collections.py", line 199, in fromkeys
self[key] = value
File "/usr/lib/python2.7/collections.py", line 58, in __setitem__
if key not in self:
TypeError: unhashable type: 'list'
如何解决这个问题?或者有另一种方式去做我想做的事情?
编辑:
输入:
files = ['red', 'green', 'blue', 'green', 'yellow']
g_list = [['x','y'], ['z'], ['q','r','x'], ['z'], ['x', 'r']]
所需的输出:
files = ['red', 'green', 'blue', 'yellow']
g_list = [['x','y'], ['z'], ['q','r','x'], ['x', 'r']]
使用'tuple'代替。可以像'元组(my_list)' – ZWiki
的可能的复制一样简单[类型错误:unhashable类型:“字典”,当用作另一字典密钥字典(http://stackoverflow.com/questions/4531941/typeerror-不可拆分型字典当字典用作另一字典的关键字) – rll
使用元组不会删除重复项。前后的'len(files)'产生相同的结果。 – p014k