Python从列表中删除特定的相邻重复项

时间:2018-07-28 04:49:42

标签: python python-2.7 list duplicates

I have a list 

x=['b1','00','00','10','10','F5','D1','01','01'...]  # sample data

我正尝试仅在相邻的'10'处删除它们。

到目前为止,我已经尝试过

my_list= [x[i] for i in range(len(x)) if (i==0) or ( x[i] !=x[i-1])] # current implementation 

这会删除所有相邻的重复项,但我要保留'00','00'和'01',而只删除'10'的重复项

如何使用列表理解来实现这一目标?

1 个答案:

答案 0 :(得分:1)

只需在列表理解中添加一个附加条件:or (x[i] != '10')

[x[i] for i in range(len(x)) if (i==0) or (x[i] !=x[i-1]) or (x[i] != '10')]
# ['b1', '00', '00', '10', 'F5', 'D1', '01', '01']