当前位置: 首页 > 面试题库 >

Python在移动窗口中分割字符串

华飞驰
2023-03-14
问题内容

我有一个数字这样的字符串- digit = "7316717"

现在,我想以这样的方式拆分字符串,即输出一次是3位数字的移动窗口。所以我得到-

["731", "316", "167", "671", "717"]

方法如何?简单的方法是放入for循环并进行迭代。但是我觉得一些内置的python字符串函数可以用更少的代码来做到这一点。知道这种方法吗?


问题答案:

该itertools例子提供了window,不只是该函数:

from itertools import islice
def window(seq, n=2):
    "Returns a sliding window (of width n) over data from the iterable"
    "   s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ...                   "
    it = iter(seq)
    result = tuple(islice(it, n))
    if len(result) == n:
        yield result    
    for elem in it:
        result = result[1:] + (elem,)
        yield result

用法示例:

>>> ["".join(x) for x in window("7316717", 3)]
['731', '316', '167', '671', '717']


 类似资料:
  • 问题内容: 如何在定界符哪里分割此字符串 获得?的输出 问题答案: 你可以使用以下功能:

  • 问题内容: 我在网上找到了一些答案,但是我没有使用正则表达式的经验,我相信这里是需要的。 我有一个字符串,需要用分隔 或也就是说,它必须是分号或逗号后跟一个空格。没有尾随空格的单个逗号应保持不变 示例字符串: 应该拆分为包含以下内容的列表: 问题答案: 幸运的是,Python内置了:) 更新: 在你的评论之后:

  • 在字符串中分隔符的最后一次出现时拆分字符串的推荐Python习惯用法是什么?例如: 接受第二个参数,该参数是要拆分的分隔符的引用。与常规列表索引一样,表示从末尾开始的最后一个。如何做到这一点?

  • 问题内容: 我有类似的字符串,我需要将它们按字符分开,然后将两个部分分别分配给一个变量。在Ruby中,我会这样做: 显然,Lua没有这么简单的方法。经过一番挖掘,我找不到一种简短的方法来实现自己的目标。我提到我是Lua的一个新手,我需要在Redis的脚本中使用它(因此,它确实应该很小,如果可能的话,只写一个)。 问题答案: 使用模式匹配: 请注意,这是一个魔术字符,因此必须使用进行转义。

  • 问题内容: 这是解释此问题的最简单方法。这是我正在使用的: 这就是我想要的: 原因是我想将字符串拆分为标记,对其进行操作,然后再次将其放回原处。 问题答案:

  • Python 中,除了可以使用一些内建函数获取字符串的相关信息外(例如 len() 函数获取字符串长度),字符串类型本身也拥有一些方法供我们使用。 注意,这里所说的方法,指的是字符串类型 str 本身所提供的,由于涉及到类和对象的知识,初学者不必深究,只需要知道方法的具体用法即可。 从本节开始,将给大家介绍一些常用的字符串类型方法,本节先介绍分割字符串的 split() 方法。 split() 方