我如何使用for循环,以便在运行我的第一个列表之后,它将继续在我的第二个for循环中使用另一个列表

时间:2020-06-18 12:55:51

标签: python excel xlsxwriter

for i in range (len(outputList)):
    worksheet.write(i+1, 0, outputList[i][0])
    worksheet.write(i+1, 3, outputList[i][1], center)
    if outputList[i][2] == "Passed":
        worksheet.write(i+1, 1, outputList[i][2], passed) 

    elif outputList[i][2] == "Failed":
        worksheet.write(i+1, 1, outputList[i][2], failed)

        if outputList[i][3] == "Severe":
            worksheet.write(i+1, 2, outputList[i][3], severe)

        if outputList[i][3] == "Moderate":
            worksheet.write(i+1, 2, outputList[i][3], moderate)

        if outputList[i][3] == "Minor":
            worksheet.write(i+1, 2, outputList[i][3], minor)

嗨,我正在尝试使用python将值输入到我的自动生成的excel中,并且我想从上面的for循环中将值插入到我的excel中之后,我想在下面将值插入到另一个列表中,但是我该怎么做那?下面的其他for循环代码:

for i in range (len(passList)):
            worksheet.write(i+1, 0, passList[i][0])
            worksheet.write(i+1, 3, passList[i][1], center)    
            if passList[i][2] == "Passed":
                worksheet.write(i+1, 1, passList[i][2], passed)     
                if passList[i][3] == "None":
                    worksheet.write(+1, 2, passList[i][3]) 

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您想做什么,那么类似的事情就可以完成:

for i, item in enumerate(outputList, start=1):
    worksheet.write(i, 0, item[0])
    # ...

for i, item in enumerate(passList, start=len(outputList+1)):
    worksheet.write(i, 0, item[0])
    # ...

我正在使用内置的[enumerate] 1函数来避免不得不输入outputList[i]数以千计的次数,并使用其可选的start参数来将编号调整为工作表。

修改

如果要对两个列表执行完全相同的操作,则可以从一开始就将它们连接起来:

for i, item in enumerate(outputList + passList, start=1):
    # ...

很显然,这将为串联列表使用一些额外的内存。如果不可接受,则可以使用itertools.chain而不是将它们串联。