Как мне использовать l oop, чтобы после того, как он запустил мой первый список, он продолжил мой второй для l oop с другим списком - PullRequest
0 голосов
/ 18 июня 2020
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)

Привет, я пытаюсь ввести значения в свой автоматически сгенерированный Excel, используя python, и я подумал, вставив значения в свой Excel из приведенного выше for l oop, я хочу вставить значения ниже со значениями из другого списка, но как мне это сделать? Код другого для l oop ниже:

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 голосов
/ 18 июня 2020

Если я правильно понял, что вы хотите сделать, что-то вроде этого может сработать:

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 для настройки нумерации на листе.

Edit

Если хотите, сделайте чтобы сделать то же самое с обоими списками, вы можете просто объединить их с самого начала:

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

Очевидно, это займет некоторую дополнительную память для объединенного списка. Если это неприемлемо, вы можете использовать itertools.chain вместо их объединения.

...