我的列表:
l = ["volcano", "noway", "lease", "sequence", "erupt"]
期望的输出:
'volcanowayleasequencerupt'
我的尝试:
使用 itertools.groupby
,但当有连续 2 个重复字母时似乎不起作用(例如:leasesequence
-> sese
保留):
>>> from itertools import groupby
>>> "".join([i[0] for i in groupby("".join(l))])
'volcanonowayleasesequencerupt'
正如您所看到的,它只删除了最后一个 'e',这并不理想,因为如果一个字母有双字符,它们将被缩小为1个。 例如:'suddenly'会变成'sudenly'。
我正在寻找最Pythonic的方法。
提前谢谢。
编辑
我的列表中没有重复项。
l = ['split', 'it', 'lit']
中,第三个单词与第二个单词相比匹配得更远,你对此有什么期望? - Kelly Bundy'splitlit'
。 - hofD