Files
Python_CookBook_repo/1.数据结构与算法/10.移除重复元素保留顺序.py

26 lines
750 B
Python
Raw Normal View History

2025-09-10 16:12:45 +08:00
# 如果序列中存储的元素是可哈希的,那就可以使用集合与生成器解决
def dequpe(items):
seen = set()
for item in items:
if item not in seen:
yield item
seen.add(item)
# 如果序列里的元素是不可哈希的,比如字典这种东西,就要先转化为可哈希对象;
# 这里自定义的key函数就起到了给字典解包的作用
def dequpe(items, key):
seen = set()
for item in items:
val = item if key is None else key(item)
if val not in seen:
yield item
seen.add(val)
# 如果单纯的做不改变顺序的去重,直接转集合再转列表就行了
a = [1,5,2,1,9,1,5,10]
a = list(set(a))
print(a)