Python从列表中删除重复项
时间:2020-02-23 14:43:14 来源:igfitidea点击:
有很多方法可以从Python列表中删除重复项。
- 使用临时列表和循环
- 使用set()内置方法
- 使用字典键
- 列表count()函数
- 列表理解
从列表中删除重复项
Python列表可以包含重复的元素。
让我们看一下以不同方式删除重复元素的示例。
1.使用临时列表
这是从列表中删除重复元素的蛮力方法。
我们将创建一个临时列表,并仅在不存在临时列表时才添加元素。
ints_list = [1, 2, 3, 4, 3, 2] temp = [] for x in ints_list: if x not in temp: temp.append(x) ints_list = temp print(f'Updated List after removing duplicates = {temp}')
输出:删除重复项后的更新列表= [1、2、3、4]
推荐读物:Python f字符串
2. set()函数
Python集没有重复的元素。
我们可以使用内置的set()函数将列表转换为集合,然后使用list()函数将其转换回列表。
ints_list = [1, 2, 3, 4, 3, 2] ints_list1 = list(set(ints_list)) print(ints_list1) # [1, 2, 3, 4]
3.列出元素作为字典键
我们知道字典键是唯一的。
dict类具有fromkeys()函数,该函数接受iterable,以使用来自iterable的键来创建字典。
ints_list = [1, 2, 3, 4, 3, 2] ints_list2 = list(dict.fromkeys(ints_list)) print(ints_list2) # [1, 2, 3, 4]
4.列表count()函数
列表count()方法返回该值的出现次数。
我们可以将其与remove()方法一起使用,以从列表中消除重复的元素。
ints_list = [1, 2, 3, 4, 3, 2] for x in ints_list: if ints_list.count(x) > 1: ints_list.remove(x) print(ints_list) # [1, 2, 3, 4]
5.列表理解
我们可以使用列表推导从可迭代对象创建列表。
此技术与使用临时列表和for循环删除重复的元素相同。
但是,它减少了代码的行数。
int_list = [1, 2, 3, 4, 3, 2] temp = [] [temp.append(x) for x in ints_list if x not in temp] print(temp) # [1, 2, 3, 4]
从列表中删除重复项的最佳方法
如果您不想重复元素,则应使用Set。
但是,如果您必须从列表中删除重复的值,那么我宁愿使用count()函数,因为它不会创建另一个临时集或者列表对象。
因此,它的存储效率更高。