首页 > 编程知识 正文

Python数组去重函数用法介绍

时间:2023-11-21 15:21:27 阅读:288762 作者:XTAY

本文将从以下几个方面,详细讲解Python数组去重函数。

一、使用set函数进行去重

我们知道set函数是用于创建一个无序不重复元素集的数据类型。所以我们可以使用set函数将一个列表中的重复元素去除。

lst = [1, 2, 3, 1, 2, 3] 
lst = list(set(lst))
print(lst)

代码解释:首先定义了一个列表lst,里面包含了重复的元素。然后使用了set函数将重复元素去掉,并将结果转换为列表的形式。最后输出了去重后的列表。

但是这种做法有一个弊端,就是去掉了重复元素的同时,也打乱了原来列表中元素的顺序,变成了一个无序的列表。如果我们需要保留原来列表的顺序,可以使用下面介绍的方法。

二、使用列表推导式进行去重

列表推导式是Python中一种简洁而强大的方式,可以将一个列表转换为另一个列表,同时可以对元素进行过滤、修改等操作。我们可以利用列表推导式来去掉一个列表中的重复元素,并保留原来列表的顺序。

lst = [1, 2, 3, 1, 2, 3]
new_lst = []
[new_lst.append(i) for i in lst if i not in new_lst]
print(new_lst)

代码解释:首先定义了一个列表lst,里面包含了重复的元素。然后定义一个新的空列表new_lst。利用列表推导式,循环遍历lst中的元素,如果该元素不在new_lst中,则把该元素添加到new_lst中。最后输出去重后的列表new_lst。

三、使用字典.fromkeys方法进行去重

字典是Python中另一个强大的内置数据类型。字典有一个特点就是它的键是唯一的,如果有重复的键,后者会覆盖前者。我们可以利用这个特点来去掉一个列表中的重复元素。

lst = [1, 2, 3, 1, 2, 3]
lst = list(dict.fromkeys(lst).keys())
print(lst)

代码解释:首先定义了一个列表lst,里面包含了重复的元素。然后使用字典的.fromkeys方法,将lst中的元素作为字典的键,并将它们的值都赋为None。由于字典中的键是唯一的,所以这样可以去掉重复元素。最后将字典的键转换为列表的形式,输出去重后的列表。

四、使用pandas库中的.unique方法进行去重

pandas是Python中常用的数据处理库,它提供了Series和DataFrame两个数据结构,可以方便地进行数据处理和分析。

如果我们需要对一个数组进行去重,并且需要在保留原来数组顺序的同时获得一个pandas中的Series对象,可以使用pandas库中的.unique方法。

import pandas as pd
lst = [1, 2, 3, 1, 2, 3]
s = pd.Series(lst)
s_unique = s.unique().tolist()
print(s_unique)

代码解释:首先导入pandas库。然后定义了一个列表lst,里面包含了重复的元素。将lst转换为pandas中的Series对象,并赋给变量s。使用Series对象的.unique方法,得到一个numpy.array数组,并转换为列表的形式。最后输出去重后的列表s_unique。

五、使用numpy库中的unique方法进行去重

numpy是Python中常用的数值计算库,它提供了向量化计算的功能,可以高效地处理数组和矩阵等数据结构。

如果我们需要对一个数组进行去重,并且需要在保留原来数组顺序的同时获得一个numpy中的数组,可以使用numpy库中的unique方法。

import numpy as np
lst = [1, 2, 3, 1, 2, 3]
arr = np.array(lst)
arr_unique = np.unique(arr)
print(arr_unique)

代码解释:首先导入numpy库。然后定义了一个列表lst,里面包含了重复的元素。将lst转换为numpy中的数组对象,并赋给变量arr。使用numpy中的.unique方法,得到一个去重后的数组。最后输出去重后的数组arr_unique。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。