Python程序:从数组中删除重复的元素
数组由多个元素组成,其中存在重复和非重复元素。因此,本文的主要目的是学习如何删除重复的元素或重复的元素,并打印所有非重复的元素。
有多种方法可以避免程序中的重复元素。将用于删除重复元素的技术或算法将依次进行讨论。
使用新创建的临时数组
在这个技巧中,最初创建新数组。所有数组的元素都与新创建的数组中存在的元素进行比较。
如果重复数组的任何元素已经存在于新创建的数组中,则被忽略。如果元素不存在于新创建的数组中,则将其附加到新数组中。
程序结束时的新结果数组将是不带重复元素的所需数组。
示例
在此示例中,我们将学习通过使用新创建的临时数组从数组中删除重复元素的过程。
from array import *
arr = [1, 2, 3, 4, 5, 2, 4, 6, 7, 8, 8, 9, 1, 10, 3, 9]
max_size = len(arr)
print("由重复元素组成的数组的元素是:")
for i in range(max_size):
print(arr[i])
print()
new_arr = []
for x in arr:
if x not in new_arr:
new_arr.append(x)
arr = new_arr
print("去掉重复元素后的数组:", new_arr)
输出
上面程序的输出如下 −
由重复元素组成的数组的元素是:
1
2
3
4
5
2
4
6
7
8
8
9
1
10
3
9
去掉重复元素后的数组: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
使用set()函数
set()函数用于删除重复元素,这已经是Python语言中可以从中访问的内置方法。该方法在许多应用程序中常用于不同的目的,其中之一是从数组中删除重复元素。让我们在程序中处理此方法。
示例
在下面的示例中,我们将学习如何通过使用方法set()从数组中删除重复元素。
from array import *
arr = [1, 2, 3, 4, 5, 2, 4, 6, 7, 8, 8, 9, 1, 10, 3, 9]
max_size = len(arr)
print("由重复元素组成的数组的元素是:")
for i in range(max_size):
print(arr[i])
print()
arr = list(set(arr))
print("去掉重复元素后的数组:",arr)
输出
上面程序的输出如下 −
由重复元素组成的数组的元素是:
1
2
3
4
5
2
4
6
7
8
8
9
1
10
3
9
去掉重复元素后的数组: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
使用字典键
字典键是从数组或列表等中删除重复元素的一种方式。单词dict既用作关键字,也用作对象,用于从数组中删除重复元素。
对象dict被称为并调用方法fromkeys(),然后可以删除重复元素。在Python中,字典有广泛的应用。其中最常用的应用之一是从数组中删除冗余元素或重复元素。
示例
在这个例子中,我们将学习如何使用字典键从数组中删除重复元素。
from array import *
arr = [1, 2, 3, 4, 5, 2, 4, 6, 7, 8, 8, 9, 1, 10, 3, 9]
max_size = len(arr)
print("由重复元素组成的数组的元素为:")
for i in range(max_size):
print(arr[i])
print()
new_arr = list(dict.fromkeys(arr))
print("移除重复元素后的数组为:",new_arr)
输出结果
上述程序的输出结果如下所示 –
由重复元素组成的数组的元素为:
1
2
3
4
5
2
4
6
7
8
8
9
1
10
3
9
移除重复元素后的数组为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
使用列表推导式
列表推导式通常表示语句使用较长。整个操作依赖于附加不重复的元素。这种技术还涉及最初为空的创建新数组。
然后,将未在数组中已经存在的筛选元素添加到新创建的空数组中,以便忽略数组中的重复元素。通过数组的特性,在一行内,可以平稳地进行筛选。
例子
在这个例子中,我们将学习使用列表推导式从数组中移除重复元素的过程。
from array import *
arr = [1, 2, 3, 4, 5, 2, 4, 6, 7, 8, 8, 9, 1, 10, 3, 9]
max_size = len(arr)
print("由重复元素组成的数组的元素为:")
for i in range(max_size):
print(arr[i])
print()
new_arr = []
[new_arr.append(x) for x in arr if x not in new_arr]
print("移除重复元素后的数组为:",new_arr)
输出结果
上述程序的输出结果如下所示 –
由重复元素组成的数组的元素为:
1
2
3
4
5
2
4
6
7
8
8
9
1
10
3
9
移除重复元素后的数组为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
根据我们所拥有的信息,我们可以选择特定的技术。如果主要目的是拥有易于解决问题的简单算法,则可以使用方法 set()。通过这种方法,在 Python 中可以从数组中移除重复的元素。