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

字符串块子集的字符串切片技巧

  •  0
  • TaxpayersMoney  · 技术社区  · 3 年前

    我知道 my_str[1::3] 让我每2个字符分为3个,但如果我想每2个和3个字符呢?有没有一种简单的方法可以通过切片实现这一点,或者我需要一些其他方法,比如列表理解加连接:

    new_str = ''.join([s[i * 3 + 1: i * 3 + 3] for i in range(len(s) // 3)])
    
    0 回复  |  直到 3 年前
        1
  •  2
  •   AKX Bryan Oakley    3 年前

    我认为使用列表来理解 enumerate 会是最干净的。

    >>> "".join(c if i % 3 in (1,2) else "" for (i, c) in enumerate("peasoup booze scaffold john"))
    'eaou boz safol jhn'
    
        2
  •  1
  •   Ba2sik    3 年前

    与其只获得第二和第三个字符,为什么不过滤掉第一个项目?

    比如:

    >>> str = '123456789'
    >>> tmp = list(str)
    >>> del tmp[::3]
    >>> new_str = ''.join(tmp)
    >>> new_str
    '235689'