expected = {
'l1': ['abc', 'def', 'ghi', 'jkl'],
'l2': ['abc', 'ghi', 'jkl', 'mno']
}
我想得到set(['abc', 'def', 'ghi', 'jkl', 'mno'])
使用python 2.6+(所以{x for x in ...}
是不是我想要的)。蟒蛇集理解做出不同的列表
我已經試過
all_files = set(files for files in expected.values())
但它拋出:
TypeError: unhashable type: 'list'
你能解釋一下爲什麼設置expect可排序類型?所有的python設計選擇都是合乎邏輯的,但我看不到原因。 – ducin
@tkoomzaaskz,像'set','dict'這樣的數據結構在內部使用散列值。 – falsetru
@tkoomzaaskz,閱讀[爲什麼字典鍵必須是不可變的? - Python設計和歷史常見問題](http://docs.python.org/2/faq/design.html#why-must-dictionary-keys-be-immutable) – falsetru