python可迭代对象去重实例

1. 什么是可迭代对象

在Python中,如果一个对象使用了for循环进行遍历,那么这个对象就是可迭代对象,比如列表、元组和字典等。

# 列表为可迭代对象

my_list = [1, 2, 3, 4]

for item in my_list:

print(item)

输出结果:

1

2

3

4

2. 什么是去重

在Python中,去重就是将一个可迭代对象中重复的元素删除掉,只保留一个元素。

3. 如何对可迭代对象进行去重

3.1 使用set()

利用Python的set()函数,可以将一个可迭代对象转化成一个集合,集合的元素是唯一的,重复的元素会被删除掉。

my_list = [1, 2, 2, 3, 4, 4]

my_set = set(my_list)

my_new_list = list(my_set)

print(my_new_list)

输出结果:

[1, 2, 3, 4]

使用set()函数对可迭代对象去重的缺点是,去重后可迭代对象的顺序会发生变化。

3.2 利用列表推导式

使用列表推导式,可以对可迭代对象进行去重,并保持原来的顺序。

my_list = [1, 2, 2, 3, 4, 4]

my_new_list = []

[my_new_list.append(item) for item in my_list if item not in my_new_list]

print(my_new_list)

输出结果:

[1, 2, 3, 4]

这种方式的缺点是,需要遍历两次可迭代对象,效率相对较低。

3.3 利用dict.fromkeys()

借助dict.fromkeys()函数,可以对可迭代对象进行去重,并保持原来的顺序。

my_list = [1, 2, 2, 3, 4, 4]

my_dict = {}.fromkeys(my_list)

my_new_list = list(my_dict.keys())

print(my_new_list)

输出结果:

[1, 2, 3, 4]

这种方式的缺点是,需要将一个列表转化成一个字典,然后再将字典转化成一个列表。

3.4 自定义函数

使用自定义函数,可以对可迭代对象进行去重,并保持原来的顺序。

def remove_duplication(lst):

my_new_list = []

for item in lst:

if item not in my_new_list:

my_new_list.append(item)

return my_new_list

my_list = [1, 2, 2, 3, 4, 4]

my_new_list = remove_duplication(my_list)

print(my_new_list)

输出结果:

[1, 2, 3, 4]

这种方式的优点是,代码结构清晰,容易理解。

4. 结语

以上就是对Python可迭代对象进行去重的几种方法,每种方法都有各自的优缺点,需要对具体情况进行选择使用。在实际工作中,根据可迭代对象的大小、顺序、是否允许数据重复等方面进行考虑,选择一种最适合的方式。

后端开发标签