如何修正while循环使其输出与等价的for循环一致?
修正嵌套while循环以匹配原for循环输出
问题出在j的初始化位置——你只在代码最开始给j赋值了一次j = i。当第一次内层while循环结束时,j已经变成了6,之后i递增到1、2...时,j的数值已经大于等于len(docs[i]),内层循环直接跳过,自然不会输出后续内容。
要和原for循环逻辑对齐,需要每次外层循环开始时重置j的初始值,把j = i移到外层while循环的内部:
docs = ['123867', '256789', '3aa', '4gg', '5yy', '6abc'] i = 0 while i < len(docs): j = i # 每次i更新后,重新初始化j为当前i的值 while j < len(docs[i]): print(i, j) j += 1 i += 1
这样修改后,每次外层循环(i变化)时,j都会从当前的i值开始遍历,和原for循环中for j in range(i, len(docs[i]))的执行逻辑完全一致,就能得到和原代码相同的输出结果。
内容的提问来源于stack exchange,提问作者nerd
相关产品推荐
相关产品推荐

