Python中的去重问题,这或许是个简单的问题。
比如一个list:a = [1,3,2,9,5,3,1,5],如何删除重复元素,嗯,有一个高端的方法:
#方法一
a = set(a)
a:1, 2, 3, 5, 9.哇,好高端,事情可没这么简单,观察,a的顺序变的,类型也变了
print a,type(a)
set([1, 2, 3, 5, 9]) <type 'set'>
a变成了python里面的集合类型,顺序且无重复元素,跟sort的功能有点类似,好用,但是这个上述方法既改变的a的类型又改变了a中元素既有顺序(虽然用类型转换成将a变为list类型。
注意a里面的元素全是数字,如果将a里面有其它元素比如:
a = [1,3,2,9,5,3,1,5,[1,2],[1,2]]
print set(a)
TypeError: unhashable type: 'list'
于是发现set这个方法不好使了,原因是a里面出现了不可哈希的元素类型,那何为可哈希元素呢?
python文档里面是这么说的:
An object ishashable if it has a hash value which never changes duringits lifetime (it needs a