You need to enable JavaScript to run this app. Python构造指定步长窗口的滑动元组并映射到预定义字典索引的方法
优惠活动
大模型
产品
解决方案
定价
更多

Python构造指定步长窗口的滑动元组并映射到预定义字典索引的方法

实现方案

1. 修复滑动元组生成逻辑

你原有代码的问题在于range的范围和步长设置错误,正确逻辑要保证每个窗口的起始索引i满足i + 窗口大小k ≤ 列表总长度,同时步长设置为2。修复后可以用更简洁的切片写法实现,不需要手动逐个取索引:

k = 4
d = 2
# 自动过滤所有长度不足k的窗口
movingTuple = [tuple(source[i:i+k]) for i in range(0, len(source) - k + 1, d)]

2. 完整实现需求的全量代码

直接遍历合法滑动元组,从target字典中取值即可得到最终的索引列表:

import itertools

# 初始化target映射字典
target = list(itertools.product(['a','b','c','d'], repeat=4))
target = {item: idx for idx, item in enumerate(target)}

source = ['a','b','b','d','a','b','d','c','a','d','b','a','d','c','a']
k = 4
d = 2

# 生成合法滑动元组
moving_tuple = [tuple(source[i:i+k]) for i in range(0, len(source) - k + 1, d)]
# 匹配得到索引列表
result = [target[t] for t in moving_tuple]

print(moving_tuple)
print(result)

运行后首先会输出符合要求的滑动元组列表,然后输出对应的索引列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 23:36:04