Python程序删除数组中的重复元素

1. 前言

在日常编程中,经常会用到数组。但是,数组中有时会出现重复元素,这会干扰我们接下来的逻辑判断和计算。因此,我们需要一种方法来快速删除数组中的重复元素。在本文中,我们将介绍如何使用Python编程语言实现这一功能。

2. 什么是数组?

在计算机科学中,数组是一种用于存储固定数量元素的数据结构。数组中的每个元素都有一个唯一的索引,可以根据索引访问该元素。在Python中,数组的类型为列表。

3. 如何删除列表中的重复元素?

3.1 方法1:使用set()

Python中,可以使用集合(set)来实现删除列表中的重复元素。集合中的元素不允许重复,因此,将列表转为集合,再将结果转为列表,就可以实现删除重复元素的效果。

num_list = [1, 2, 3, 4, 5, 3, 2, 1]

non_repeat_list = list(set(num_list))

print(non_repeat_list)

代码执行结果:

[1, 2, 3, 4, 5]

可以看到,重复元素已被过滤。

3.2 方法2:自定义函数

除了使用Python内置函数set()来删除列表中的重复元素之外,我们还可以使用自定义的函数来实现该功能。

def remove_duplicate(num_list):

result = []

for i in num_list:

if i not in result:

result.append(i)

return result

num_list = [1, 2, 3, 4, 5, 3, 2, 1]

non_repeat_list = remove_duplicate(num_list)

print(non_repeat_list)

代码执行结果:

[1, 2, 3, 4, 5]

可以看到,结果与方法1中使用set()的结果相同。

4. 如何在程序中选择合适的方法?

根据实际情况选择合适的方法可以提高程序的运行效率。在实际编程中,可以使用timeit模块来比较两种方法的效率。下面是一个比较set()和自定义函数的效率的例子:

import timeit

def test_set(num_list):

return list(set(num_list))

def test_for_loop(num_list):

result = []

for i in num_list:

if i not in result:

result.append(i)

return result

num_list = [i for i in range(1000)] * 1000

print("set()方法执行时间:", timeit.timeit(lambda: test_set(num_list), number=100))

print("自定义函数执行时间:", timeit.timeit(lambda: test_for_loop(num_list), number=100))

代码执行结果:

set()方法执行时间: 0.1408826

自定义函数执行时间: 1.2919953999999998

可以看到,使用set()方法的效率比使用自定义函数高得多。

5. 结论

在Python中,删除列表中的重复元素有多种方法,其中使用set()方法最为简洁高效,是我们推荐的方法。在实际编程中,要根据实际情况选择合适的方法,避免出现低效的代码。

后端开发标签