TypeError: unhashable type: 'list'

想查找列表a中的不重复项

len(list(set(a)))

报错:

TypeError: unhashable type: 'list'

解决:

  发现是因为列表a不是一维的,是一个嵌套list,将其变成一维后问题解决

  使用函数:

def list_app(old_list, new_list = list()):
    """#isinstance去判断遍历的l是不是还是一个list如果还是list,用递归继续反复遍历"""
    for l in old_list:
        if isinstance(l, list):
            list_app(l) # 调用递归
        else:
            # 如果不是,把l添加进一个新的list
            new_list.append(l)
    return new_list

#原文链接:https://www.cnblogs.com/colinshi/p/8242602.html
#把一个嵌套的多维列表变为一维列表(递归方法)
a=list_app(a)
list(set(a))

 

posted on 2020-07-27 15:00  西兰花座  阅读(6570)  评论(0)    收藏  举报

导航