python可迭代对象去重

来源:互联网 发布:软件破解器下载 编辑:程序博客网 时间:2024/06/14 10:22

可迭代对象去重(保持顺序不变)


def filter_multi(items,key=None):"""可迭代对象去重(保持顺序不变)[1,4,7,2,4,7,3,5] ==> [1,4,7,2,3,5]"""its = list()for x in items:val = x if key is None else key(x)if val not in its:yield valits.append(val)
#如:print list(filter_multi([1,3,5,3,7,2,4,2]))items = [{'a':1,'b':2},{'a':3,'b':4},{'a':1,'b':2},{'a':5,'b':6}]print list(filter_multi(items,key=lambda k:(k['a'],k['b'])))