博客
关于我
Python 列表删除相同的元素
阅读量:796 次
发布时间:2023-03-07

本文共 825 字,大约阅读时间需要 2 分钟。

今天遇到一个问题,需要在列表中删除多个相同的值。比如,给定的列表是 [1, 2, 3, 'a', 4, 5, 'a', 7, 'a']。我需要找到一种既能删除重复值,又能保持列表顺序的方法。

首先,我尝试了一个常见的方法:先去重,再使用列表的 remove 方法。具体做法是将列表转换为集合,然后再转换回列表,这样可以去掉重复的元素。例如:

list1 = [10, 2, 3, "a", 4, 5, "a", 7, "a"]list2 = list(set(list1))list2.remove("a")print(list2)

这样操作后,list2 变成了 [1, 2, 3, 4, 5, 7]。不过,这种方法会改变原列表的顺序,因为集合是无序的。

接着,我想到了一种不改变顺序的方法:使用 while 循环不断删除重复的元素。具体做法是:

list = [10, 2, 3, "a", 4, 5, "a", 7, "a"]while "a" in list:    list.remove("a")print(list)

这样操作后,list 变成了 [10, 2, 3, 4, 5, 7],顺序保持不变。虽然循环有点繁琐,但可以确保顺序不变。

最后,我想到了一种更简洁的方法:使用列表推导式。直接筛选出不等于 'a' 的元素:

list = [10, 2, 3, "a", 4, 5, "a", 7, "a"]list = [x for x in list if x != "a"]print(list)

这样操作后,list 变成了 [10, 2, 3, 4, 5, 7],顺序保持不变,这种方法代码简洁明了,也高效。

总的来说,有多种方法可以删除列表中的重复值。去重后的 remove 方法虽然简单,但会改变顺序。如果需要保持顺序,可以选择循环删除或列表推导式。循环的方法虽然有点麻烦,但效率还不错,而列表推导式则更加优雅,代码简洁。

转载地址:http://xcofk.baihongyu.com/

你可能感兴趣的文章
Python网络爬虫基础进阶到实战教程
查看>>
Python 初学者需要知道的四条建议
查看>>
Python 判断字符串是否包含子字符串
查看>>
python 判断当前时间是否为零点
查看>>
python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
查看>>
python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
查看>>
python 利用pyttsx3文字转语音
查看>>
python 利用已有Ner模型进行数据清洗合并
查看>>
python 到大数据开发工程师_如何成为一个大数据开发工程师?
查看>>
python 加密解密(base64, AES)
查看>>
Python 包管理器和 Node.js
查看>>
Python 单词字母顺序不变且所有倒排
查看>>
python 反射机制
查看>>
python 启动提示IDLE's subprocess didn't make conne...
查看>>
python 命令接口_实现“[命令][操作][参数]”样式的命令行接口?
查看>>
Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
查看>>
Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
查看>>
python编辑器打不开_关于命令ride.py打不开RF,而是打开pycharm编辑器问题解决思路...
查看>>
python编译exe同时支持32位_第三周:同时管理64位和32位版本的Python,并用Pyinstaller打包成exe...
查看>>
Python 和Java 哪个更适合做自动化测试?
查看>>