这里以一个栗子来用三种方法实现,输入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']