python 可迭代序列(列表,元组,字符串),实现邻近去重,顺序不变

码字不易,转载请标明出处…


邻近去重代码实现如下:

def special_func_order(seq):
    list_ = []   # 定义一个空列表,用来存储判断后的数据

    for i in range(len(seq) - 1):  # 假如 len(seq) = 17  , 则range(16) --> 0-16
        if seq[i] != seq[i + 1]:  #  i 从0到15, i+1 == 1-->16, 可迭代序列的索引就是0--15(包含了前16个)
            list_.append(seq[i])  # 第17个数字,如果和16个相同,那么16和17都不会被append;如果和16不同,那么,只会放16个,不会放17个
    list_.append(seq[-1])  # 为了避免最后一个被遗漏,我们需要手动添加进去

# 下面的if判断,是用来判断输入数据的原来的type,根据原来的type,进行操作后的转化。
    if isinstance(seq, list):
        print(list_)
    if isinstance(seq, tuple):
        print(tuple(list_))
    else:
        myseq = ''.join(list_)
        print(myseq)


_list = [1, 2, 3, 2, 3, 4, 5, 6, 6, 6, 8, 8]
_tuple = (1, 2, 3, 2, 3, 4, 5, 6, 6, 6, 8, 8, 9)
_str = 'AAABBBCDCCABBCcDD'
special_func_order(_list )
special_func_order(_tuple)
special_func_order(_str )

打印结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值