我有以下列表:
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: ,我会得到 p>
#[["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/