擅长:python、mysql、java
<p>这不是最好的答案,我认为它的性能很差,但是如果有人需要没有任何模块的纯python或者使用Cython(类型化变量),这可能会有帮助:</p>
<pre><code>lister=["AB1","AB2","AB3","AB3-2","AB3-3","AB3-4","AB4","AB4-2","AB5"]
resulter = list()
i=0
while i< len(lister)-1:
if '-' not in lister[i] and '-' not in lister[i+1]:
resulter.append(lister[i])
elif '-' not in lister[i] and '-' in lister[i+1]:
j=i+1
tmp = lister[j]
while '-' in tmp and j<len(lister)-1 and lister[i][2] == lister[j+1][2]:
j += 1
tmp = lister[j]
i=j
resulter.append(tmp)
i+=1
if lister[-1] not in resulter:
resulter.append(lister[-1])
print(resulter)
</code></pre>