Make an iterator from the list (if it is not already one) and get nonce an element nextfrom the iterator for each nin 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]]
source
share