我有一个输出一些数据的工具.众所周知,每当’10’进入数据时,它就会加上额外的’10’,即新数据变为……’10’,’10’,.有时连续系列中可能有4’10’,这意味着实际上有2’10’.
在阅读数据时,我试图删除重复项.到目前为止,我已经学会了如果只找到两个相邻的重复项如何删除重复项,但同时如果找到偶数个重复项,我想返回一半重复项.
x = [ '10', '10', '00', 'DF', '20' ,'10' ,'10' ,'10' ,'10', ....]
预期产出
[ '10', '00' , 'DF', ' 20', ' 10', '10' ..]
解决方法:
您可以尝试使用itertools中的groupby():
X= [ '10', '10', '00', 'DF', '20' ,'10' ,'10' ,'10' ,'10']
from itertools import groupby
result = []
for k, g in groupby(X) :
group = list(g)
if k == '10' :
result.extend(group[:(len(group)+1)/2])
else :
result.extend(group)
print result
得到:
['10', '00', 'DF', '20', '10', '10']