如何重置列表并使用迭代器再次开始填充它

How to reset a list and start populate it again using an iterator

我可以使用下面的代码。

我需要什么: 在我得到两个包含 10 个元素的列表后,每个迭代器仍然有 80 个元素,所以我需要再重复这个过程 4 次,但我想在每个循环中重置两个列表。

我不想创建 arr3、arr4...等,因为原始数组有超过 100000 个元素。

如何重复此循环以重置列表?

# creating an array with 100 samples
array = np.random.rand(100)

# making the array an iterator
iter_array = iter(array)

# List to store first 10 elements
arr1=[]


# List to store next 10 elements
arr2=[]

# First Iteration to get 2 list of 10 elements each
for _ in itertools.repeat(None, 10):
    a =next(iter_array)
    arr.append(a)
    b=next(iter_array)
    arr2.append(b)

您可以将结果存储在 list-of_lists:

import numpy as np
import itertools

# creating an array with 100 samples
array = np.random.rand(100)

# making the array an iterator
iter_array = iter(array)

# List to store first 10 elements
n = 2
result = [[] for _ in range(n)]

# First Iteration to get 2 list of 10 elements each
for _ in itertools.repeat(None, 10):
    for i in range(n):
        result[i].append(next(iter_array))

print(f"{result = }")

您可以更改 n 值以存储 8 个或更多数组。