26 lines
750 B
Python
26 lines
750 B
Python
|
# 如果序列中存储的元素是可哈希的,那就可以使用集合与生成器解决
|
||
|
|
||
|
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)
|