You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将字符串滑动切片为连续定长子串(如abcd切为abc、bcd)

固定长度滑动窗口连续子串实现方案

你需要的是窗口长度3、滑动步长1的重叠式字符串切分,和非重叠的固定间隔n字符切分逻辑不同,直接按起始索引遍历截取合法子串即可,以Python实现为例:

基础实现代码

# 原始字符串
origin_str = "abcdefghijk"
# 滑动窗口长度
window_len = 3
# 滑动步长
step = 1

sub_str_list = []
# 计算所有合法的起始索引范围:保证截取的子串长度等于窗口长度,不会越界
for start_idx in range(0, len(origin_str) - window_len + 1, step):
    sub_str_list.append(origin_str[start_idx : start_idx + window_len])

# 打印输出结果
for sub in sub_str_list:
    print(sub)

运行输出

abc
bcd
cde
def
efg
fgh
ghi
hij
ijk

如果只需要当前场景(窗口长3、步长1)的最简写法,可以直接用列表推导式一行完成:

sub_str_list = [origin_str[i:i+3] for i in range(len(origin_str) - 2)]

逻辑说明:普通每n个字符分割的方案,本质是步长等于窗口长度的非重叠切分,只要把步长参数调整为1,遍历所有不会导致子串越界的起始位置做切片,就能得到连续滑动的重叠子串序列。如果需要调整窗口长度或者滑动步长,只需要修改对应参数即可通用。

内容的提问来源于stack exchange,提问作者Saeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 20:15:44