這里以一個栗子來用三種方法實現,輸入a=['1','1','2','2','1','1'],輸出b=['1', '2', '1']
方法一:
1 list1 = ['1','1','2','2','1','1'] 2 3 def del_adjacent(alist): 4 for i in range(len(alist) - 1, 0, -1): 5 if alist[i] == alist[i-1]: 6 del alist[i] 7 8 del_adjacent(list1) 9 print(list1) # ['1', '2', '1']
方法二:使用itertools庫
1 import itertools 2 3 list1 = ['1','1','2','2','1','1'] 4 new_list1 = [k for k, g in itertools.groupby(list1)] 5 print(new_list1) # ['1', '2', '1']
方法三:生成器(generator)
1 list1 = ['1','1','2','2','1','1'] 2 3 def del_adjacent(iterable): 4 prev = object() 5 for iterm in iterable: 6 if iterm != prev: 7 prev = iterm 8 yield iterm 9 10 a = list(del_adjacent(list1)) # 這里del_adjacent()是一個生成器類型,需要使用list轉換成列表 11 print(a) # ['1', '2', '1']