在列表中添加+ =

时间:2018-10-04 15:41:05

标签: python python-3.x python-2.7

我的代码:

jx = 0
templist = [x for x in range(0,30)]
while True:
    for x in range(1,6):
        print(templist[jx])
        print(x)

        if len(templist) == jx:
            break
        else:
            jx += 1
            continue

我试图循环两次并在循环内打印两个不同的项目,但这对我不起作用。

我收到的列表超出范围错误。

3 个答案:

答案 0 :(得分:1)

jx永远持续增长,最终达到不存在的临时列表索引。 templist的len为30。templist中的最大值为29。因此,在将templist的长度与jx的最大值进行比较时,需要做负1的比较。您还需要打破外部的while循环。

jx = 0
templist = [x for x in range(0,30)]
break_outer = False
while True:
    for x in range(1,6):
        print(templist[jx])
        print(x)
        print len(templist)
        if len(templist)-1 == jx:
            break_outer = True
            break

        else:
            jx += 1
    if break_outer:
        break

答案 1 :(得分:0)

尝试打印元素后,您正在测试jx。相反。首先测试是否超出范围,然后打印元素并递增jx。

答案 2 :(得分:0)

jx到达len(templist)时发生错误(在这种情况下为30)。您无法访问templist[30],因为索引从零开始,因此最后一个是29。(比长度少1。)

您可以通过将if语句更改为if len(templist) == jx + 1:来解决此问题。或通过将print语句放在if / else子句之后。 (如果您选择后者,则需要删除continue,但在这里什么也没做。)