python - 将列表划分为偏移量为 1 的子列表
问题描述
我有以下列表:
x=["A", "B", "B", "C", "B", "A", "D", "D", "A", "B", "A", "D"]
我想知道如何将一个分区为长度为 2 且偏移量为 1 的子列表,以便获得:
#[["A", "B"], ["B", "B"], ["B", "C"], ["C", "B"], ["B", "A"], ["A",
# "D"], ["D", "D"], ["D", "A"], ["A", "B"], ["B", "A"], ["A", "D"]]
还有一个通用的方法吗?例如对于不同大小的分区和不同的偏移量?假设我想分区为 3 的子列表,偏移量为 2:我会得到
#[["A", "B", "B"], ["B", "C", "B"], ["B", "A", "D"], ["D", "D",
# "A"], ["A", "B", "A"]]
是否可以将其编写为函数,因此对于给定的列表,具有给定的分区大小和给定的偏移量,它会找到子列表?
解决方案
您可以在第一个元素之后使用列表的一部分并使用zip
>>> x=["A", "B", "B", "C", "B", "A", "D", "D", "A", "B", "A", "D"]
>>> [list(a) for a in zip(x,x[1:])]
[['A', 'B'], ['B', 'B'], ['B', 'C'], ['C', 'B'], ['B', 'A'], ['A', 'D'], ['D',
'D'], ['D', 'A'], ['A', 'B'], ['B', 'A'], ['A', 'D']]
推荐阅读
- bash - 如何在while循环中将多行输出到文件?
- python - 如何从 python 中“获取 /auto/xlnx/current_petatools/settings.sh”?
- python-3.x - ValueError:math.log() 中的数学域错误
- node.js - 如何设置每个服务器/公会的机器人状态
- mysql - 什么是表示 MySQL 上某事物持续时间的最佳数据类型
- excel - EXCEL VBA宏编辑
- vue.js - 单选按钮
未选中(变为蓝色) - api - 如何通过 REST API 在 IBM Cloud 上按标签搜索资源?
- php - 从高级自定义字段创建 WordPress 图库短代码
- reactjs - react js中的可编辑文本框