gpt4 book ai didi

python - 根据 Python 中的一组索引将列表拆分为多个部分

转载 作者:IT老高 更新时间:2023-10-28 20:30:59 24 4
gpt4 key购买 nike

根据任意数量的索引将列表拆分为多个部分的最佳方法是什么?例如。给出下面的代码

indexes = [5, 12, 17]
list = range(20)

返回类似的东西

part1 = list[:5]
part2 = list[5:12]
part3 = list[12:17]
part4 = list[17:]

如果没有索引,它应该返回整个列表。

最佳答案

这是我能想到的最简单和最 Pythonic 的解决方案:

def partition(alist, indices):
return [alist[i:j] for i, j in zip([0]+indices, indices+[None])]

如果输入非常大,那么迭代器解决方案应该更方便:

from itertools import izip, chain
def partition(alist, indices):
pairs = izip(chain([0], indices), chain(indices, [None]))
return (alist[i:j] for i, j in pairs)

当然还有非常非常懒惰的解决方案(如果您不介意获取数组而不是列表,但无论如何您都可以将它们恢复为列表):

import numpy
partition = numpy.split

关于python - 根据 Python 中的一组索引将列表拆分为多个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1198512/

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