Python高效去重:从列表中获取唯一值的最佳实践

这是文章《在Python中从列表中获取唯一值》的第1部分(共3部分)。

本文将深入探讨从Python列表中提取唯一值的三种高效方法。在处理海量原始数据时,我们经常面临需要从原始输入数据集中筛选出唯一且非重复数据的挑战。以下介绍的方法将助您轻松解决这一问题。让我们即刻开始!


如何从Python列表中获取唯一值

您可以采用以下任一方法从Python列表中获取唯一值:

  • Python set() 方法
  • 结合 for 循环和 Python list.append() 方法
  • 使用 Python numpy.unique() 方法

1. 使用Python的set()函数从列表中获取唯一值

在我们之前关于Python集合(Set)的教程中,我们了解到集合(Set)会自动存储重复值的一个副本。集合的这一特性可以巧妙地用于在Python中从列表中获取唯一值。

  • 首先,我们需要使用 set() 函数将输入列表转换为集合。

语法:

set(input_list_name)
  • 当列表转换为集合后,所有重复元素都将只保留一个副本。
  • 然后,我们需要使用以下命令/语句将集合转换回列表:

语法:

list(set_name)
  • 最后,打印新的列表。

示例:

list_inp = [100, 75, 100, 20, 75, 12, 75, 25]

set_res = set(list_inp)
print("使用 set() 获取的输入列表的唯一元素:\n")
list_res = (list(set_res))

for item in list_res:
    print(item)

输出:

使用 set() 获取的输入列表的唯一元素:

25
75
100
20
12

2. 结合 for 循环和 Python list.append() 方法

这是文章《在Python中从列表中获取唯一值》的第2部分(共3部分)。

为了找到列表中的唯一元素,我们可以结合使用Python的for循环和list.append()函数来实现。

  • 首先,我们创建一个新的(空)列表,例如 res_list
  • 接着,使用 for 循环检查新创建的列表(res_list)中是否存在某个特定元素。如果该元素不存在,则使用 append() 方法将其添加到新列表中。

语法:

list.append(value)
  • 在遍历过程中,如果遇到一个在新列表中已经存在的元素(即重复元素),for 循环会忽略它。我们将使用 if 语句来判断元素是唯一的还是重复的。

示例:

list_inp = [100, 75, 100, 20, 75, 12, 75, 25] 

res_list = []

for item in list_inp: 
    if item not in res_list: 
        res_list.append(item) 

print("使用 append() 方法获取列表中的唯一元素:\n")    
for item in res_list: 
    print(item) 
      

输出:

使用 append() 方法获取列表中的唯一元素:

100
75
20
12
25

3. 使用Python的numpy.unique()函数创建一个包含唯一项的列表

使用NumPy模块获取唯一值

Python的NumPy模块提供了一个内置函数 numpy.unique(),用于从NumPy数组中提取唯一的数据项。

  • 首先,我们需要使用以下命令将Python列表转换为NumPy数组:

语法:

numpy.array(list-name)
  • 接着,我们将使用 numpy.unique() 方法从NumPy数组中获取唯一的数据项。
  • 最后,我们将打印出结果列表。

语法:

numpy.unique(numpy-array-name)

示例代码:

import numpy as N
list_inp = [100, 75, 100, 20, 75, 12, 75, 25]

res = N.array(list_inp)
unique_res = N.unique(res)
print("使用 numpy.unique() 获取列表中的唯一元素:\n")
print(unique_res)

输出结果:

使用 numpy.unique() 获取列表中的唯一元素:

[ 12  20  25  75 100]

总结

在这篇文章中,我们探讨了从Python列表中获取唯一值的各种方法。


参考资料

bannerAds