python中如何对列表去重

python中如何对列表去重

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

用户关注问题

Q
怎样在Python中去除列表中的重复元素?

我有一个包含重复元素的Python列表,想要获取一个只包含唯一元素的新列表,该怎么做?

A

使用set()函数实现列表去重

可以利用Python的set类型,它会自动去除重复元素。将列表转换为集合,再转换回列表就能得到去重后的列表,例如:

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

Q
如何在Python保持列表顺序的同时去重?

我想对列表去重,但希望新列表中的元素顺序与原列表一致,该如何操作?

A

使用dict.fromkeys()方法保持顺序去重

Python 3.7及以上版本中,字典会保持插入顺序。通过dict.fromkeys()可以实现顺序去重,例如:

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

Q
有没有其他方式对Python列表去重,支持元素是不可哈希类型?

如果列表中包含不可哈希的元素,比如字典或列表,如何实现去重?

A

使用遍历和辅助列表实现不可哈希元素去重

由于集合只支持可哈希元素,对不可哈希类型的元素去重可以通过循环遍历列表并手动判断元素是否已添加,例如:

original_list = [{'a':1}, {'b':2}, {'a':1}]
unique_list = []
for item in original_list:
if item not in unique_list:
unique_list.append(item)