如何使用lambda函数实现列表3元素滑动窗口遍历并生成结果数组
3元素滑动窗口的lambda实现方案
核心实现代码
最简洁的写法是在lambda内嵌套列表推导:
slide_window = lambda L: [L[i:i+3] for i in range(len(L) - 2)]
运行示例
L = [1,2,3,4,5,6,7,8] final_array = slide_window(L) print(final_array) # 输出结果:[[1,2,3],[2,3,4],[3,4,5],[4,5,6],[5,6,7],[6,7,8]]
实现说明
- 3元素固定窗口的场景下,索引起始值
i的取值范围是0到len(L)-3,对应range(len(L)-2)(Python的range为左闭右开结构,刚好覆盖所有合法起始索引) - 每次通过列表切片
L[i:i+3]取连续3个元素,最终自动拼接为子列表组成的结果数组
如果偏好使用高阶函数map实现,也可以写为:
slide_window = lambda L: list(map(lambda i: L[i:i+3], range(len(L)-2)))
内容的提问来源于stack exchange,提问作者Sara
相关产品推荐
相关产品推荐

