python - 将列表划分为偏移量为 1 的子列表

标签 python arrays list

我有以下列表:

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']]

关于python - 将列表划分为偏移量为 1 的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51729217/

相关文章:

python - 如何在区 block 链上存储交易日志?

c++ - 在没有 std::merge 的情况下合并两个 STL 容器

Python:获取两个 3D 点之间的所有坐标或绘制 3D 线

python - 我的表单的 is_valid 方法返回 false

java - Collection.toArray() 的时间复杂度是多少?

javascript - 将数组转为对象

java - 将 C 中的十六进制数组转换为 C 中的 long 到 Java 中的 String

java - 通过 Spring Batch 作业步骤维护作业前对象

Python,同时将类创建 append 到列表a

python 函数无法正常工作,它不会返回用户应该获得的值