当前位置: 首页 > news >正文

python列表常见去重方法

列表去重在python实际运用中,十分常见,也是最基础的重点知识。

1. 使用for循环实现列表去重

此方法去重后,原顺序保持不变。

# for循环实现列表去重
list1 = ['a', 4, 6, 4, 'b', 'hello', 'hello', 'world', 9, 9, 4, 'a']
list2 = []
for l1 in list1:if l1 not in list2:list2.append(l1)
print(list2)

结果:['a', 4, 6, 'b', 'hello', 'world', 9]

2. 使用列表推导式去重

此方法去重后,原顺序保持不变。

# 使用列表推导式去重
list1 = ['a', 4, 6, 4, 'b', 'hello', 'hello', 'world', 9, 9, 4, 'a']
res = []
[res.append(i) for i in list1 if i not in res]
print(res)

结果:['a', 4, 6, 'b', 'hello', 'world', 9]

3. 使用集合转换函数set()实现列表去重

原理:同一个集合的元素之间是不允许重复的,但是结果不能保证顺序性


# set()列表去重
list1 = ['a', 4, 6, 4, 'b', 'hello', 'hello', 'world', 9, 9, 4, 'a']
list2 = list(set(list1))
print(list2)

结果:['world', 'b', 4, 6, 9, 'hello', 'a']  

如果想保持顺序性有2种办法:

第一种方法,使用sort()方法

# # 第一种方法,sort()
list1 = ['a', 4, 6, 4, 'b', 'hello', 'hello', 'world', 9, 9, 4, 'a']
list2 = list(set(list1))
list2.sort(key=list1.index)
print(list2)

注:sort()方法没有返回值,对列表元素进行原地排序

第二种方法,使用sorted()函数

# 第二种方法,sored()
list1 = ['a', 4, 6, 4, 'b', 'hello', 'hello', 'world', 9, 9, 4, 'a']
list2 = sorted(list(set(list1)), key=list1.index)
print(list2)

注:python内置函数sorted()函数返回新的列表,并不对原列表做任何修改

4. 使用新建字典方式实现列表去重

原理:字典的"键"是不允许重复的

此方法去重后,原来顺序保持不变。

# 使用新建字典实现列表去重
list1 = ['a', 4, 6, 4, 'b', 'hello', 'hello', 'world', 9, 9, 4, 'a']
dic = {}
dic = dic.fromkeys(list1).keys()
print(list(dic))

结果:['a', 4, 6, 'b', 'hello', 'world', 9]

5. 删除列表中存在重复的数据(不是去重,是把重复数据全部删除)

上面的4种去重方法,都是保留一个,删除其他

下面这种方法则是,只要存在重复,一个都不保留

# 删除存在重复的值,不保留
list1 = ['a', 4, 6, 4, 'b', 'hello', 'hello', 'world', 9, 9, 4, 'a']
list2 = [i for i in list1 if list1.count(i) == 1]
print(list2)

结果:[6, 'b', 'world']

相关文章:

python列表常见去重方法

列表去重在python实际运用中,十分常见,也是最基础的重点知识。 1. 使用for循环实现列表去重 此方法去重后,原顺序保持不变。 # for循环实现列表去重 list1 [a, 4, 6, 4, b, hello, hello, world, 9, 9, 4, a] list2 [] for l1 in list1:…...

usb摄像头应用编程

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…...

康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(一)

功能模型接口FMI(Functional Mock-up Interface)是一个开放且与工具解耦的标准。FMI包含了一个C-API(接口),一个用于描述接口的XML文件以及可交换的功能模型单元FMU(Functional Mock-up Unit)&a…...

OPenCV中绘制多条多边形曲线函数polylines的使用

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 绘制多条多边形曲线 原型1 void cv::polylines ( InputOutputArray img, InputArrayOfArrays pts, bool isClosed, const Scalar & color…...

气膜球幕影院:娱乐体验的新高度—轻空间

气膜球幕影院以其独特的全景沉浸体验和丰富的娱乐内容,成为了现代娱乐产业的重要组成部分。轻空间带您来探索一下气膜球幕影院带来的独特娱乐体验。 全景沉浸式体验 气膜球幕影院的360度全景沉浸式体验,彻底改变了传统观影方式。观众被包围在一个球形屏幕…...

阿里CEO个人投资的智驾公司,走了不一样的路

佑驾创新在去年8月和11月完成两轮融资,在今年5月底递表港交所,目前拿到了29家车企88款车型的量产订单。自动驾驶赛道不缺明星,这些因素本不足以凸显它的差异化。但是在招股书中,一条特殊的发展路线,却让佑驾创新显得不…...

Arduino平台软硬件原理及使用——无源蜂鸣器模块的使用

文章目录 一、蜂鸣器发声原理 二、无源蜂鸣器与有源蜂鸣器的区分 三、无源蜂鸣器模块在Arduino中的使用 一、蜂鸣器发声原理 上图为常见的不同封装及规格的蜂鸣器。 同蜜蜂、知了等昆虫发声原理一样,蜂鸣器同样靠振动来发出声音; 如上图为无源蜂鸣器的内…...

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

本文档主要描述如何用 DBeaver、db browser 和 SqlCipher 上打开加密的 SQLite3 数据库(用 SqlCipher v3 加密) 软件版本 DBeaver:v24.1.0 SQLite-driver: sqlite-jdbc-3.46.0.0.jar dbbrowser-for-sqlite-cipher:3.12.2 SqlCipher cli(ubuntun)&am…...

ROS操作过程中的报错

文章目录 错误:E: Unable to locate package ros-noetic-desktop-full报错问题报错原因解决方法 错误2:ERROR: cannot download default source list from:报错问题错误原因解决办法 错误:E: Unable to locate package ros-noetic-desktop-fu…...

Qt项目学习-20240617

Qt项目学习 1.0 文件构建 1.1 预处理命令 C预处理命令是编译过程中的第一步,发生在编译器进行实际编译之前。预处理器(preprocessor)执行这些命令,它们不是C语言的一部分,但对源代码的编译过程至关重要。以下是一些常…...

加密好的WPSword文档,忘记密码怎么办?

在日常办公和学习中,我们经常使用WPS Word等文档处理软件来创建和编辑重要文件。为了保护这些文件不被未经授权的人访问,我们通常会选择给文档设置密码。然而,有时我们可能会因为时间久远或其他原因而忘记自己设置的密码,这时该如…...

C# WPF 读写CAN数据

C# WPF 读写CAN数据 CAN 分析仪 分析仪资料下载 官方地址:https://www.zhcxgd.com/1.html CSDN: 项目配置 复制Dll库文件 文件在上面的资料里面 设置不安全代码 CAN C#工具类 CAN_Tool.cs using Microsoft.VisualBasic; using System; using Sys…...

力扣2517.礼盒的最大甜蜜度

力扣2517.礼盒的最大甜蜜度 二分答案求最小值 排完序判断是否有k个差距至少为mid的元素别用i遍历 可能会越界 用 : 有多少取多少 class Solution {public:int maximumTastiness(vector<int>& price, int k) {ranges::sort(price);auto check [&](int mid) -&…...

多模块存储器

随着计算机技术的发展&#xff0c;处理的信息量越来越多&#xff0c;对存储器的速度和容量要求也越来越高&#xff1b;而且随着CPU性能的不断提高、IO设备数量不断增加&#xff0c;导致主存的存取速度已经称为了整个计算机系统的性能瓶颈。这就要求我们必须提高主存的访问速度。…...

Windows反截屏开发实现

文章目录 Windows反截屏开发实现1. SetWindowDisplayAffinity2. 反截屏系统3. 总结 Windows反截屏开发实现 最近在我们云桌面中需要做到反截屏能力&#xff0c;所谓反截屏就是我们无法通过截图软件&#xff08;微信&#xff0c;QQ&#xff0c;截图等程序&#xff09;截取桌面的…...

Android.mk的用法

前言 Android.mk 文件是 Android 编译系统中用于描述项目源文件、库和模块的 Makefile。它采用 GNU Make 的语法,但也包含了一些特定于 Android 编译系统的规则和变量。以下是对其语法和使用方法的详细解释及示例。 一:模块种类 一个Android.mk file用来向编译系统描述你的源…...

android studio CreateProcess error=2, 系统找不到指定的文件

【问题记录篇】 在AndroidStudio编译开发jni相关工程代码的时候&#xff0c;编译遇到的这个报错&#xff1a; CreateProcess error2, 系统找不到指定的文件。排查处理步骤: 先查看Build Output的具体日志输出 2.了解到问题出在了NDK配置上&#xff0c;此时需要根据自己的gra…...

jQuery如何把单选框设置为选中状态

在网页开发中&#xff0c;我们经常需要使用表单元素来收集用户数据。其中&#xff0c;单选框&#xff08;radio button&#xff09;是一种常见的表单元素&#xff0c;用于从一组选项中选择一个。使用jQuery&#xff0c;我们可以轻松地控制这些单选框的状态&#xff0c;包括将它…...

Mware Fusion Pro 13 mac版:一键掌控虚拟世界

VMware Fusion Pro 13是一款功能卓越的虚拟化软件&#xff0c;专为Mac操作系统量身打造。这款软件为用户提供了一个一站式的虚拟化解决方案&#xff0c;能够满足各种多样化的需求。 VMware Fusion Pro 13 Mac获取 VMware Fusion Pro 13的强大之处在于其采用了最 先进的虚拟化…...

PTA - 函数的定义与调用

编写一个名为collatz()的函数,它有一个名为number的参数&#xff1a; 如果number是偶数,那么collatz()就打印number加上2如果number是奇数,那么collatz()就打印number乘以2 函数接口定义&#xff1a; def collatz(number)裁判测试程序样例&#xff1a; /* 请在这里填写答案…...

Solr7.4.0报错org.apache.solr.common.SolrException

文章目录 org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"Exception writing…...

从2-3-4树开始理解红黑二叉树(JAVA代码手撸版)

经典的红黑二叉树在新增/删除数据时维持自平衡始终对应着一个2-3-4 树。本文只关注2-3-4 对应的经典红黑二叉树。 暂时不考虑 2-3 树对应的左倾红黑二叉树。 背景知识 2-3-4 树简介 一棵 2-3-4 树的结点分为 内部结点 (internal nodes) 和 叶子结点 (leaf nodes) &#xff0c;…...

模板类与继承

1模板类继承普通类&#xff08;常见&#xff09; #include<iostream> using namespace std; class AA { public:int m_a;AA(int a) :m_a(a) { cout << "调用了AA的构造函数\n"; }void func1() { cout << "调用func1&#xff08;&#xff09;…...

随手记:uniapp图片展示,剩余的堆叠

UI效果图&#xff1a; 实现思路&#xff1a; 循环图片数组&#xff0c;只展示几张宽度就为几张图片边距的宽度&#xff0c;剩下的图片直接堆叠展示 点击预览的时候传入当前的下标&#xff0c;如果是点击堆叠的话&#xff0c;下标从堆叠数量开始计算 <template><…...

微服务迁移、重构最佳经验

1. 了解现有的单体应用: - 应用架构和技术栈 要了解现有的应用架构和技术栈&#xff0c;可以采取以下几个步骤&#xff1a; 1. 了解应用的背景和目标&#xff1a;首先要了解应用的背景和目标&#xff0c;包括应用所属的行业、应用的类型&#xff08;例如Web应用、移动应用等…...

【Python】从0开始的Django基础

Django框架基础 unit01一、Django基础1.1 什么是Django?1.2 安装与卸载1.2.1 Python与Django的版本1.2.2 安装1.2.3 查看Django版本1.2.4 卸载 二、Django项目2.1 概述2.2 创建项目2.3 启动项目2.4 项目的目录结构2.5 配置 三、URL 调度器3.2 定义URL路由3.2 定义首页的路由3.…...

红黑树(数据结构篇)

数据结构之红黑树 红黑树(RB-tree) 概念&#xff1a; 红黑树是AVL树的变种&#xff0c;它是每一个节点或者着成红色&#xff0c;或者着成黑色的一棵二叉查找树。对红黑树的操作在最坏情形下花费O(logN)时间&#xff0c;它的插入操作使用的是非递归形式实现红黑树的高度最多是…...

高级视频编码器性能对比(H265、VP9、AV1)

1、背景介绍 目前在视频编解码器中&#xff0c;H264已经成为绝对的主流&#xff0c;被大部分设备、浏览器所支持。虽然有更先进的编码器推出&#xff0c;但是受限于推广速度和设备支持成本&#xff0c;一直未能成为主流。 今年公司目标是持续降本增效&#xff0c;现在将”屠刀…...

示例:WPF中DataGrid简单设置合并列头

一、目的&#xff1a;应用DataGridTemplateColumn列模板&#xff0c;去拆分列头和单元格布局的方式设置列头合并样式 二、实现 效果如下 三、环境 VS2022 四、示例 应用DataGridTemplateColumn自定义列头信息和单元格信息 <DataGrid AutoGenerateColumns"False"…...

Matlab图像处理——细胞图像的分割和计数显示

一. 项目介绍 使用MATLAB编写的细胞图像分割及计数系统&#xff0c;实现了对图像内细胞的计数&#xff0c;以及对每个细胞周长和面积的测量&#xff0c;并分别展示了分割后的每个细胞的图像。实验步骤共分为图像预处理、图像预分割、空洞填充、黏连细胞分割、细胞个数统计、细胞…...

渭南做网站的/贵阳关键词优化平台

1.hibernate框架是什么&#xff1f; &#xff08;1&#xff09;hibernate对jdbc进行的封装 &#xff08;2&#xff09;开源的轻量级框架。 2.hibernate思想&#xff1a;ORM(对象关系映射) &#xff08;1&#xff09;让实体类和数据库中的表一一对应&#xff08;表和实体类对应、…...

网站建设与维护实训报告/郑州众志seo

https://exercise.acmcoder.com/online/online_judge_ques?ques_id9579&konwledgeId137 大学的同学来自全国各地&#xff0c;对于远离家乡步入陌生大学校园的大一新生来说&#xff0c;碰到老乡是多么激动的一件事&#xff0c;于是大家都热衷于问身边的同学是否与自己同乡&…...

鹤山市城乡住房建设部网站/高端企业网站模板

跟一开始就妥协相比&#xff0c;妥协前因迷茫&#xff0c;较劲&#xff0c;痛苦&#xff0c;而让你消极倒退或无法前进的时候&#xff0c;这些都绝对不是在浪费时间&#xff01;&#xff01;&#xff01;&#xff01;转载于:https://www.cnblogs.com/Ice-water/archive/2011/12…...

asp网站 访问 变慢 监测/seo资源网站排名

哈喽&#xff0c;大家好&#xff0c;好久不见&#xff0c;深表歉意。今天我们来讲一讲&#xff0c;目前各智能家居品牌的通讯协议都行哪些。为什么要讲协议&#xff1f;我们都知道&#xff0c;真正的智能家居系统是一套集成系统&#xff0c;而不是单个系统。如何将各个子系统联…...

网站怎么做脚注/seo整站怎么优化

我无法想象没有谷歌地图的生活会是什么样子。 我们将它用于所有事情&#xff0c;从寻找到目的地的方向&#xff0c;到搜索附近的餐馆或加油站&#xff0c;再到放大和缩小地图以查看地球上任何位置的街景。 将 Google 地图添加到您的移动应用程序可以为您的用户打开一个全新的世…...

杭州住房和城乡建设局网站首页/什么是引流推广

ps. 此文旨在纪录本人面试的经历&#xff0c;如有对文中的人或者公司有所冒犯&#xff0c;请海涵&#xff0c;不能接受者请mail我&#xff0c;说明情况&#xff0c;我将删掉相关文章 真的是学无止境&#xff0c;这次主要想总结下&#xff0c;近两次面试遇到的一些很细致的问题吧…...