在开发中对列表去重是非常常见的需求,列表去重也是Python中一种常见的处理方式。列表作为Python中最常用的数据结构,承担了Python中大多数的数据存储任务,但Python本身是不满足互异性的,意思就是有可能重复,那就需要去除这些重复值。那么Python列表去重要怎么做呢?列表去重的方式有很多,下面介绍4种方式,并对其进行性能比较。
让我们先制造一些简单的数据,生成0到99的100万个随机数:
from random import randrange
DUPLICATES= [randrange(100) for _ in range(1000000)]
接下来尝试这4种去重方式中最简单直观的方法:
1. 新建一个数组,遍历原数组,如果值不在新数组里便加入到新数组中。
# 第一种方式
def easy_way():
unique= []
for element in DUPLICATES:
if element not in unique:
unique.append(element)
return unique
进入ipython使用timeit计算其去重耗时:
%timeit easy_way()
# 1.16 s ± 137 ms per loop (mean ± std. dev. of 7 runs