在保留序列顺序的前提下消除其中的重复
在保留序列顺序的前提下消除其中的重复
小李飞刀x 发表于3年前
在保留序列顺序的前提下消除其中的重复
  • 发表于 3年前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

# -*- coding: utf-8 -*-
try: set
except NameError: from sets import Set as set
def uniquer2(seq, f=None):
    '''
    f定义了序列seq的元素之间的等价对应关系,而且对于seq的任意元素x,f(x)必须是可哈希的
    保留由f定义的每个等价类中最早出现的元素
    :param seq:
    :param f:
    :return:
    '''
    if f is None:
        def f(x): return x
    already_seen = set()
    result = []
    for item in seq:
        marker = f(item)
        if marker not in already_seen:
            already_seen.add(marker)
            result.append(item)
    return result


共有 人打赏支持
粉丝 0
博文 3
码字总数 401
×
小李飞刀x
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: