gpt4 book ai didi

python - 在 Python 中将序列拆分为单个步骤的最优雅方法

转载 作者:行者123 更新时间:2023-12-05 08:25:02 25 4
gpt4 key购买 nike

假设我有一个从 0 到 9 的列表:

lst = list(range(10))

我想将它分成 2 个单独的步骤。我设法编写了以下工作代码:

res = [[] for _ in range(len(lst) - 1)]
for i, x in enumerate(lst):
if i < len(lst) - 1:
res[i].append(x)
if i > 0:
res[i-1].append(x)

>>> print(res)
[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]]

但我觉得应该有更优雅的编码方式。有什么建议吗?

最佳答案

您可以归纳为 n 个步骤:

def steps(lst, n=2):
return [[*x] for x in zip(*(lst[i:] for i in range(n)))]

steps(range(10), 2)
# [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]]
steps(range(10), 3)
# [[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9]]

关于python - 在 Python 中将序列拆分为单个步骤的最优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69288482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com