网站首页 网站地图
网站首页 > 游戏秘籍 > 删除重复值保留一个

删除重复值保留一个

时间:2026-04-01 10:12:08

在 Python 中,如果你有一个列表(或任何可迭代对象),想要删除重复值,保留一个,可以使用以下几种方法:

✅ 方法一:使用 set() + list()

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

输出:

[1, 2, 3, 4, 5]

⚠️ 注意: set() 会破坏顺序,所以如果你需要保留原始顺序,可以使用下面的方法。

✅ 方法二:使用 dict.fromkeys()

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

输出:

[1, 2, 3, 4, 5]

优点: 保留原始顺序,适合处理需要保留顺序的场景。

✅ 方法三:使用 pandas(如果需要处理 DataFrame)

import pandas as pd

df = pd.DataFrame([[1, 2, 3], [2, 3, 4], [3, 4, 5]])
unique_df = df.drop_duplicates()
print(unique_df)

输出:

   0  1  2
0  1  2  3
1  2  3  4
2  3  4  5

✅ 方法四:使用 itertools(如果需要保留顺序)

from itertools import groupby

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

for item in my_list:
    if item not in seen:
        seen.add(item)
        unique_list.append(item)

print(unique_list)

输出:

[1, 2, 3, 4, 5]

✅ 总结

方法 适用场景 优点 缺点
set() 简单快速 无顺序 顺序丢失
dict.fromkeys() 需要保留顺序 保留顺序
pandas 处理 DataFrame 保留顺序 依赖 pandas

如果你有具体的数据结构或场景,可以告诉我,我可以帮你定制方案。