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

如何使用滑动窗口迭代器获取指定长度的子字符串列表

嘿,你的思路其实已经很接近了!我们来一步步完善代码,让它完美实现你想要的滑动窗口子串提取需求~

解决方案:提取指定长度的滑动窗口子字符串列表

你的迭代器思路非常巧妙!只需要稍作调整,把每次生成的窗口收集到结果列表中,就能得到目标输出了。

修正后的迭代器实现代码

size = 4
word = "PYTHON"
result = []  # 用来存储最终的子字符串列表
win = []
i = iter(word)

# 初始化第一个窗口
for _ in range(size):
    win.append(next(i))
result.append(''.join(win))  # 把字符列表转为字符串存入结果

# 滑动窗口,生成后续子串
for e in i:
    win = win[1:] + [e]
    result.append(''.join(win))

print(result)  # 输出:['PYTH', 'YTHO', 'THON']

代码细节解释

  • 新增result列表专门用来保存所有生成的子字符串;
  • 初始化窗口后,用''.join(win)把字符列表转换成完整的字符串,再添加到result中;
  • 后续滑动窗口时,重复“更新窗口→转字符串→存入结果”的步骤;
  • 最终result就是我们需要的子字符串列表。

更简洁的字符串切片写法

如果你觉得迭代器的方式有点繁琐,也可以直接用字符串切片实现,代码会更简洁直观:

size = 4
word = "PYTHON"
result = [word[i:i+size] for i in range(len(word) - size + 1)]
print(result)  # 输出:['PYTH', 'YTHO', 'THON']

这个列表推导式的逻辑很清晰:从索引0开始,每次取长度为size的切片,直到最后一个合法的起始索引(也就是len(word)-size),自动生成所有滑动窗口的子串。

两种方法都能实现需求,你可以根据自己的习惯选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:09:58