python 可迭代序列(列表,元組,字串),實現鄰近去重,順序不變
阿新 • • 發佈:2018-12-22
碼字不易,轉載請標明出處…
鄰近去重程式碼實現如下:
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 )
列印結果如下: