微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何生成前 n 个排列然后暂停和重新启动?

如何解决如何生成前 n 个排列然后暂停和重新启动?

一个简单的问题,我有来自 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 为步长?

解决方法

您可以获得迭代器的无限循环副本,然后使用 ncycle 中的 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)))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。