码字不易,转载请标明出处…
邻近去重代码实现如下:
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 )
打印结果如下: