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

如何基于词表中各元素长度对字符串进行滑动窗口拆分

基于词表元素长度的滑动窗口拆分实现

核心逻辑说明

此处的拆分逻辑为:将词表每个元素按空格拆分后的单元数量作为滑动窗口大小,对目标字符串拆分后的单元列表执行步长为1的滑动截取,再将每个窗口的单元拼接为空格分隔的字符串。

完整实现代码

# 输入参数
list_of_words = ["1 2", "1 2 3", "1 2 3 4"]
target_str = "1 2 3 4" 

# 先将目标字符串拆分为基础单元列表
target_units = target_str.split()
target_len = len(target_units)

for word in list_of_words:
    # 计算当前词表元素对应的窗口大小:按空格拆分后的单元数
    win_size = len(word.split())
    # 计算滑动窗口可截取的最大起始索引
    max_start = target_len - win_size
    if max_start < 0:
        # 窗口大小超过目标字符串长度,无有效分片
        res = []
    else:
        # 滑动截取并拼接
        res = []
        for start in range(max_start + 1):
            window_units = target_units[start:start+win_size]
            # 若需要每个分片单独包裹在列表中,改为 res.append([" ".join(window_units)]) 即可
            res.append(" ".join(window_units))
    # 输出结果
    print(f'对应词表元素为"{word}"时,输出结果为:{[item for item in res]}')

运行输出结果

对应词表元素为"1 2"时,输出结果为:['1 2', '2 3', '3 4']
对应词表元素为"1 2 3"时,输出结果为:['1 2 3', '2 3 4']
对应词表元素为"1 2 3 4"时,输出结果为:['1 2 3 4']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:39:01