我有一个包含数字的字符串,像这样 - digit = "7316717"
现在我想以这样的方式拆分字符串,使输出是一个每次移动3个数字的滑动窗口。所以我得到 -
["731", "316", "167", "671", "717"]
应该如何处理? 直接的方法是使用for循环并进行迭代。但我感觉一些内置的Python字符串函数可以用较少的代码实现这个功能。您知道这样的方法吗?
```python # Python代码示例digit = "7316717" window = [digit[i:i+3] for i in range(len(digit)-2)] print(window) ```
输出:
```python ['731', '316', '167', '671', '717'] ```
window
函数(取自链接文档)是使用islice()
创建通用window
函数的示例。 - Shawn Chinitertools
的recipes中有一种更加优雅的代码,叫做 pairwise。 - ovgolovinpairwise
确实看起来更加舒适,但它是以 2 为幅度的滑动窗口硬编码的(因此是 pairwise)。我想它可以进行参数化,但这样可能不再那么舒适,并且由于它使用了tee
和zip
,所以可能不如window
配方高效。 - Shawn Chintee
和izip
是用C语言编写的,因此它们非常快。愉悦感是个人品味问题,我认为 :) - ovgolovin