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

python list去重

在Python中,列表(list)去重有多种方法,这里介绍几种常见的方法:

方法1:使用set
set是Python中的一种无序集合,可以用来实现去重。

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))
print(unique_list) # 输出可能是 [1, 2, 3, 4, 5],注意顺序会改变
如果需要保持原列表的顺序,可以使用以下方法:

方法2:使用dict.fromkeys()
利用dict.fromkeys()的特性,可以保持元素的顺序。

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(dict.fromkeys(my_list))
print(unique_list) # 输出 [1, 2, 3, 4, 5]
方法3:使用列表推导式和in操作符
这种方法可以保持元素的原始顺序。

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = []
[unique_list.append(x) for x in my_list if x not in unique_list]
print(unique_list) # 输出 [1, 2, 3, 4, 5]
方法4:使用pandas库(适用于大型数据集)
如果你正在处理大型数据集或者经常需要进行此类操作,使用pandas库可能更方便。

import pandas as pd

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = pd.unique(my_list).tolist()
print(unique_list) # 输出 [1, 2, 3, 4, 5]
方法5:使用numpy库(适用于大型数据集)
对于科学计算,numpy也提供了去重的方法。

import numpy as np

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = np.unique(my_list).tolist()
print(unique_list) # 输出 [1, 2, 3, 4, 5]
每种方法都有其适用场景,可以根据具体需求和偏好选择使用。对于大多数普通用途,方法2和3通常足够且简单。如果你正在处理大型数据集,方法4和5可能更高效。

http://www.dtcms.com/a/268594.html

相关文章:

  • 【Behavior Tree】-- 行为树AI逻辑实现- Unity 游戏引擎实现
  • Docker 将镜像打成压缩包将压缩包传到服务器运行
  • 物联网技术的关键技术与区块链发展趋势的深度融合分析
  • Java SE与Java EE使用方法及组件封装指南
  • 安卓10.0系统修改定制化_____安卓9与安卓10系统文件差异 有关定制选项修改差异
  • Java 并发编程中的同步工具类全面解析
  • qiankun隔离机制
  • [附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的高校实验室资源综合管理系统,推荐!
  • 按键开关:新型防水按键开关的特点!
  • 音频流媒体技术选型指南:从PCM到Opus的实战经验
  • 【Java面试】Https和Http的区别?以及分别的原理是什么?
  • 02 除了前面常见图表,还有许多更细分或专业的可视化类型,尤其是在特定领域(如金融、工程、生物信息等)。
  • GaussDB应用场景全景解析:从金融核心到物联网的分布式数据库实践
  • OpenCV 人脸分析----人脸识别的一个经典类cv::face::EigenFaceRecognizer
  • Oracle PL/SQL 编程基础详解(从块结构到游标操作)
  • idea 使用vscode 快捷键
  • UE 材质 变体 概念
  • ClickHouse 入门详解:它到底是什么、优缺点、和主流数据库对比、适合哪些场景?
  • 1.1_5_2 计算机网络的性能指标(下)
  • 【Vben3全解】【组件库开发】解决组件库开发中css的命名难题,保证代码质量,构建useNamespace函数
  • docker所占硬盘内存指令
  • 强化学习:Distributed PPO (DPPO) 学习笔记
  • Day08-Flask 或 Django 简介:构建 Web 应用程序
  • C++高频知识点(三)
  • 基于STM32设计的心率脉搏测量仪(项目资料)(ID:9)
  • 【Linux | 网络】网络编程套接字
  • Baklib作为赞助商参加RubyConf China 2025 技术大会
  • Java基础:随机数生成、循环结构与方法封装详解
  • 国产MCU学习Day10——CW32F030C8T6模拟电压比较器全解析
  • 【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔