-
使用集合(set)进行去重:
- 将列表转换为集合,因为集合中的元素是唯一的,会自动去除重复项。
- 然后将集合转换回列表,以保持有序性(如果需要)。
示例代码:
my_list = [2, 1, 3, 2, 4, 3, 5] my_list = list(set(my_list))
此方法会去除列表中的重复元素,并返回一个去重后的列表。但是,由于集合是无序的,转换回列表后,原始顺序可能会被打乱。
-
使用列表推导式保持有序性:
- 利用列表推导式遍历原始列表,并构建一个新的列表,只包含不重复的元素。
- 在构建新列表时,可以添加一个条件,仅将还没有出现过的元素添加到新列表中。
示例代码:
my_list = [2, 1, 3, 2, 4, 3, 5] new_list = [] [new_list.append(item) for item in my_list if item not in new_list]
这个方法会遍历原始列表并添加不重复的元素到新列表中,从而实现去重操作。由于是按顺序遍历并添加元素,所以可以保持有序。
需要注意的是,这两种方法都会创建一个新的列表对象。如果你希望在原始列表上进行就地修改,可以使用其他方法,比如通过循环和条件判断手动去重。
那么第一种方法如何改进使其保持原来的顺序?
my_list = [2, 1, 3, 2, 4, 3, 5]
my_list1 = list(set(my_list))
my_list1 = sorted(my_list1,key=my_list.index)
print(my_list1)
# result
[2, 1, 3, 4, 5]
这里的index是不加(),和map函数一样只需要一个函数名即可,index的作用可以看我之前发的python基础入门