根据第二个列表将Python列表拆分为自定义块大小

Mat*_*ias 4 python list slice

我正在寻找一种方法将列表拆分为预定义的切片:

a = list(range(1, 1001)) # Added list() 
b = [200, 500, 300]
Run Code Online (Sandbox Code Playgroud)

列表a应该被切成len(b)包含a的前200个元素,以下500个元素和最后300个元素的子列表sum(b) == len(a).可以安全地假设.

这有共同的功能吗?

tob*_*s_k 5

请从列表中迭代器(如果没有的话),并得到n次next从迭代器的每个元素n在b.

>>> a = range(1, 1001)
>>> b = [200, 500, 300]
>>> a_iter = iter(a)
>>> [[next(a_iter) for _ in range(n)] for n in b]
[[1,
  2,
  ...
  199,
  200],
 [201,
  ...
  700],
 [701,
  702,
  ...
  999,
  1000]]
Run Code Online (Sandbox Code Playgroud)