网站首页 > 文章精选 正文
方法一:使用集合(set) 可以将列表转换为一个集合来删除重复项,然后再将其转换回列表。
lst = [1, 2, 3, 2, 1]
lst = list(set(lst))
print(lst)
[1, 2, 3]
方法二:使用列表推导式 可以使用列表推导式和字典(dict)来删除重复项。首先,将列表中的元素用字典的键来存储,这样重复的元素会自动被去除。然后,再将字典的键转换为列表。
lst = [1, 2, 3, 2, 1]
lst = list(dict.fromkeys(lst))
print(lst)
方法三:使用循环 可以使用循环来遍历列表并使用一个新列表来保存不重复的元素。如果元素不在新列表中,则将其添加到新列表中。
lst = [1, 2, 3, 2, 1]
new_lst = []
for item in lst:
if item not in new_lst:
new_lst.append(item)
print(new_lst)
方法四:使用 Counter 对象 可以使用 Python 标准库中的 Counter 对象来删除重复项。Counter 对象会对列表中的元素进行计数,然后使用其 most_common 方法来获取出现次数最多的元素。在这种情况下,只需要获取最常见的元素即可,因为重复的元素都会在计数中重复出现。
from collections import Counter
lst = [1, 2, 3, 2, 1]
c = Counter(lst)
lst = [x[0] for x in c.most_common()]
print(lst)
方法五:使用 Pandas 如果您的数据集较大且包含许多重复项,则使用 Pandas 库可能更加有效。可以将列表转换为 Pandas 的 Series 对象,然后使用 drop_duplicates 方法来删除重复项。
import pandas as pd
lst = [1, 2, 3, 2, 1]
s = pd.Series(lst)
lst = s.drop_duplicates().tolist()
print(lst)
方法六:使用排序。可以使用 Python 的内置 sorted 函数对列表进行排序,然后在遍历排序后的列表时,跳过重复项,只将独特的项添加到新列表中。
lst = [1, 2, 3, 2, 1]
new_lst = []
for i in sorted(lst):
if not new_lst or i != new_lst[-1]: new_lst.append(i)
print(new_lst)
方法七:使用 filter 函数。可以使用 Python 的内置 filter 函数来过滤掉重复项。
lst = [1, 2, 3, 2, 1]
new_lst = list(filter(lambda x: lst.count(x) == 1, lst))
print(new_lst)
方法八:使用 numpy 库。可以使用 numpy 库的 unique 函数来获取列表中的唯一值。
import numpy as np
lst = [1, 2, 3, 2, 1] lst = np.unique(lst).tolist() print(lst)
方法九:使用集合(set)的 union 方法。可以使用 Python 的集合(set)的 union 方法来获取两个集合的唯一值。将列表作为参数传递给集合的 union 方法,然后将其转换回列表。
lst = [1, 2, 3, 2, 1]
lst = list(set().union(lst)) print(lst)
这些方法都可以有效地从 Python 列表中删除重复项。在实际应用中,选择哪种方法通常取决于数据集大小和性能需求。还有的请补充。
- 上一篇: Python列表详解
- 下一篇: python数据类型(三):列表
猜你喜欢
- 2025-01-16 一文了解 Python 列表
- 2025-01-16 Python学习笔记——列表
- 2025-01-16 Python中list列表函数用法大全(思维脑图加详细解读)
- 2025-01-16 Python教程:列表的排序操作
- 2025-01-16 2 常见的Python数据结构-元组、列表
- 2025-01-16 一篇文章带你弄懂Python基础之列表介绍和循环遍历
- 2025-01-16 Python之容器:列表是个百宝箱,什么都能往里装
- 2025-01-16 Python 列表生成式全解
- 2025-01-16 python散装笔记——17: 数组
- 2025-01-16 Python中的列表和元组,你了解多少?
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)