Как исправить неполный вывод из цикла for? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь сопоставить пары строк из двух файлов. Однако, если я проверяю свой цикл, он показывает неожиданный (неполный) вывод.

Я использую код ниже. Он запускает вложенный цикл только один раз, хотя я ожидаю, что он будет выполняться в каждом нормальном цикле.

def csv_remove_header(input_file):
    return next(input_file)

def csv_clean_up(line):
    # remove line breaks
    no_line_breaks = line.rstrip('\n')
    # split columns by ';'
    split_element = no_line_breaks.split(';')
    return(split_element)

with open ('file1.csv', 'r') as input_1:
    csv_remove_header(input_1)

    with open ('file2.csv', 'r') as input_2:
        csv_remove_header(input_2)

        for i in input_1:
            clean_line_i = csv_clean_up(i)
            key_i = clean_line_i[0]
            print(key_i)

            for j in input_2:
                clean_line_j = csv_clean_up(j)
                key_j = clean_line_j[0]
                print(key_j)

Выводит ожидаемые результаты:

a = [1, 3, 6, 7, 6, 7]
b = [12, 1, 123, 6, 565, 5, 6598, 78987, 4, 654, 9, 7, 8, 6, 12, 3, 56]

for i in a:
    for j in b:
        if i == j:
            print(i, j, True)
        else:
            print(i, j, False)
...