代码之家  ›  专栏  ›  技术社区  ›  yanachen

如何删除字符串中重复两次以上的字符?

  •  2
  • yanachen  · 技术社区  · 7 年前

    例如,我想删除重复字符,如 hhhaaappy hhaappy 自从 h a 重复两次。 我想删除所有重复两次以上的字符。 如何在python中快速实现它?

    此外,是否有任何python模块可以更正这个单词? 喜欢正确 hhhaaappy happy ?

    2 回复  |  直到 7 年前
        1
  •  6
  •   Ajax1234    7 年前

    您可以使用 itertools.groupby :

    import itertools
    s = "hhhaaappy"
    new_s = [(a, list(b)) for a, b in itertools.groupby(s)]
    final_s = ''.join(''.join(b[:-1]) if len(b) > 2 else ''.join(b) for a, b in new_s)
    

    输出:

    'hhaappy'
    
        2
  •  3
  •   Samuel L.    7 年前

    我想分享这个会很酷。调用的模块 autocorrect .

    它通过使用 Candidate Model ,通过对单词执行“简单编辑”。例如,it处理“ 删除->删除字母 ", " 换位->交换两个相邻的字母 ", " 更换->将一个字母改为另一个字母 ", " 插入->添加一封信 ".

    因此 hhhaaappy 可能不起作用,但 hhapy hhapppy 可能有用。

    >>> from autocorrect import spell
    >>> spell('hhhaaappy')
    'hhhaaappy'
    >>> spell('hhapy')
    'shapy'
    >>> spell('happpy')
    'happy'
    >>> spell('hhapppy')
    'happy'