1. 程式人生 > >python 可迭代序列(列表,元組,字串),實現鄰近去重,順序不變

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 )

列印結果如下:
在這裡插入圖片描述