def dedupe(items,key=None): seen = set() for item in items: val = item if key==None else key(item) #item是否为字典,是则转化为字典key(item),匿名函数调用 if val not in seen: yield item seen.add(val) #集合增加元素val if __name__=="__main__": a = [{'x':2,'y':4},{'x':3,'y':5},{'x':5,'y':8},{'x':2,'y':4},{'x':3,'y':5}] b=[1,2,3,4,1,3,5] print(b) print(list(dedupe(b))) print(a) print(list(dedupe(a,key=lambda a:(a['x'],a['y'])))) #按照a['x'],a['y']方式