python如何去掉列表中相同的元素

python如何去掉列表中相同的元素

作者:Joshua Lee发布时间:2026-01-14阅读时长:0 分钟阅读次数:6

用户关注问题

Q
怎样高效地删除列表中的重复元素?

我有一个包含重复元素的Python列表,想要去除所有重复值,如何快速实现?

A

使用集合去重

可以利用Python的集合(set)特性去除列表中的重复元素,因为集合不允许重复。通过将列表转换为集合,自动移除重复项,再将集合转换回列表即可。例如:

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))

这样得到的unique_list中就不含有重复元素。

Q
如何保持列表元素顺序同时删除重复项?

我想去除列表中的重复元素,但希望保持原有元素的顺序,该怎样实现?

A

遍历并记录已出现元素

可以通过遍历列表,使用一个辅助集合记录已经见过的元素,只有当元素第一次出现时才添加到新列表中。示例代码如下:

my_list = [1, 2, 2, 3, 4, 4, 5]
seen = set()
unique_list = []
for item in my_list:
if item not in seen:
unique_list.append(item)
seen.add(item)

这样unique_list中既无重复元素,且元素顺序得以保持。

Q
有哪些Python内置模块或方法可以用来去重?

除了使用set,还有什么方便的Python方法或模块能帮助去除列表中的重复元素?

A

利用dict.fromkeys()去重

在Python 3.7及以上版本,字典保持插入顺序,可以利用dict.fromkeys()方法去重,如下:

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(dict.fromkeys(my_list))

这会返回一个去重且顺序不变的新列表。