为什么Google Colab运行Python代码时第二条print语句没有输出?
问题原因解答
itertools.permutations返回的是一次性迭代器,迭代器遍历完成后就会被耗尽,没有剩余元素可以继续访问。- 第一次调用
list(p)时,已经把p这个迭代器里的所有排列组合元素全部取完,迭代器指针已经走到了末尾。 - 第二次在循环里调用
list(p)时,迭代器已经是空的,转换出来的是空白列表,自然不会有任何输出内容。
修复方案
如果需要多次使用排列结果,提前把迭代器转成列表存储即可,示例代码:
from itertools import permutations p = permutations([1, 2, 3]) # 提前转成列表持久化存储结果 p_list = list(p) print(p_list) for i in p_list: print(i)
内容的提问来源于stack exchange,提问作者SUMIT JHA
相关产品推荐
相关产品推荐

