python多维list去重「建议收藏」

python多维list去重「建议收藏」一维的list去重可以用set(list),但是二维的list转set就会报错unhashabletype:‘list’原因是set传进来的是不可哈希的变量Python中那么哪些是可哈希元素?哪些是不可哈希元素?可哈希的元素有:int、float、str、tuple不可哈希的元素有:list、set、dict为什么list是不可哈希的,而tuple是可哈希的(1)因为l…

大家好,又见面了,我是你们的朋友全栈君。

一维的list去重可以用set(list),但是二维的list转set就会报错 unhashable type: ‘list’
原因是set传进来的是不可哈希的变量
Python中那么哪些是可哈希元素?哪些是不可哈希元素?
可哈希的元素有:int、float、str、tuple
不可哈希的元素有:list、set、dict

为什么 list 是不可哈希的,而 tuple 是可哈希的
(1)因为 list 是可变的在它的生命期内,你可以在任意时间改变其内的元素值。
(2)所谓元素可不可哈希,意味着是否使用 hash 进行索引
(3)list 不使用 hash 进行元素的索引,自然它对存储的元素有可哈希的要求;而 set 使用 hash 值进行索引

正确做法:将list转成tuple,这样就可以用set去重。

dic = list(set([tuple(t) for t in dic]))
dic = [list(v) for v in dic]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141261.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jenkins的主要作用

    Jenkins的主要作用说明:Jenkins折腾了好几个月了,打算写个系列记录下。有时间会尽量更新的。第一章Jenkins是什么?Jenkins 是一个可扩展的持续集成引擎。主要用于:l 持续、自动地构建/测试软件项目。l 监控一些定时执行的任务。Jenkins拥有的特性包括:l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库

    2022年5月31日
    38
  • PXE服务「建议收藏」

    PXE服务「建议收藏」PXE服务器简介PXE(prebootexecuteenvironment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivialfiletransferprotocol)或MTFTP(multicasttrivialfiletransferprotocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包

    2025年6月11日
    0
  • 兼容,原来在这里就已经開始——–Day34

    兼容,原来在这里就已经開始——–Day34

    2022年2月5日
    49
  • 转载:QT版本系列介绍[通俗易懂]

    转载:QT版本系列介绍[通俗易懂]
    一、Qt简介
    Qt工具包是一个跨平台的C++开发工具。Qt被主要用在了KDE桌面环境的开发中。它是挪威Trolltech公司的产品,2008年6月17日被芬兰的诺基亚(Nokia)公司收购,以增强该公司在跨平台软件研发方面的实力。
    使用Qt开发的软件,可以在任何支援的平台上编译与执行,而不需要修改源代码。可以实现本平台的图形界面风格,也可实现其它平台的图形界面风格。比如您可以在MicrosoftWindows平台下编译出具有苹果公司MacOS图形界面风格的应用程序。

    2022年5月16日
    51
  • CSS中的“>”是什么意思

    CSS中的“>”是什么意思

    2021年10月17日
    56
  • EM算法详解+通俗例子理解[通俗易懂]

    EM算法详解+通俗例子理解[通俗易懂]文章目录1、总述2、定义3、感性例子:例子简介:加入隐变量zEM初级版EM进阶版例子总结4、Jensen不等式(前置知识)5、EM思想6、EM推导7、应用8、参考文献1、总述期望最大算法是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。EM算法是机器学习十大算法之一,或许确实是因它在实际中的效果很好吧。下面先来说说它的定义。gif演示2、定义EM…

    2022年6月18日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号