问题描述
一个简单的问题,我有来自 how to skim itertools permutations 的代码:
w_sparse = sla.eigs(csc_matrix(A),k=100,sigma=0+0j,which='LM',return_eigenvectors=False,maxiter=2000)
idx = np.argsort(abs(w_sparse.imag))
w_sparse = w_sparse[idx]
如何暂停、恢复、停止、重新开始迭代?
我如何查看以 100 为步长的迭代?
以 n 为步长?
解决方法
您可以获得迭代器的无限循环副本,然后使用 n
和 cycle
中的 islice
从中获取 itertools
块。
import itertools
n_chunks = 30
chunk_size = 100
l = ["A","B","C","(",")","#"]
perm_iterator = itertools.permutations(l)
loop_perms = itertools.cycle(perm_iterator)
for n in range(n_chunks):
print(list(itertools.islice(loop_perms,chunk_size)))