清风听雨 发表于 2015-4-28 07:17:04

python使用set来去重碰到TypeError: unhashable type

  python使用set来去重是一种常用的方法. 一般使用方法如下:



# int
a =
print "orginal:", a
print list(set(a))
# str
a =
print "orginal:", a
print list(set(a))

  某些情况会碰到类似这样的错误: TypeError: unhashable type: 'list'
  list是可变类型, 无法进行hash, tuple就可以解决这个问题



# nested list
a = [, , , , , ]
print "orginal:", a
try:
print list(set(a)) # TypeError: unhashable type: 'list'
except TypeError, e:
print "Error:", e
# tuple list
a = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 0), (1, 2)]
print "orginal:", a
print list(set(a))

  希望可以帮助碰到类似问题的人.
  
  
  
页: [1]
查看完整版本: python使用set来去重碰到TypeError: unhashable type