我使用有兩個列表,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