Управление списками Python

У меня есть следующий код:

import sys

A=['Anne','Romeo','Flynn','Mickey']
B=['Bravo','Whiskey','Anne','Flynn','Joe', 'Marianne']
C=['2', 'Joe', 'Marshall','2']
D=['Connor', '2', 'Robert', 'Marshall', 'George', 'Franklin']
E=['2', 'Flynn', '2', 'Richard', 'Phillip']
F=['Rex', 'Fer', 'Dan', 'Daniel', 'Didi', 'Didier']

for name in A:
        if name in B:
                match=name
                a_index = A.index(match)
                c_element = C[a_index]
                b_index = B.index(match)
                e_element = E[b_index]
                f_element = F[b_index]
                if c_element == e_element:
                       print([match, c_element, f_element])

Но я получаю следующую ошибку:

e_element = E[b_index] 
IndexError: list index out of range

Мой вывод должен быть примерно таким:

Anne     2       Dan

Алгоритм должен быть примерно таким:

Первый общий элемент между A и B - это Anne => совпадения => давайте проверим элементы из списков C и E из тех же строк, что и список A, а B => '2' является корреспондентом для списка C, а '2' является соответствующим для списка E => match => открыть новый лист в Excel => написать общий элемент между A и B(в нашем примере это Anne) в Excel => записать общий элемент между C и E(который в нашем примере равен 2) пример) в col = 2, row=1 => записать элемент из той же строки, что и список B, и E(строка 7) из списка F('Dan') в col=3, row=1.

На данный момент я хотел показать только на экране, но главная цель должна состоять в том, чтобы вставить эти данные в Excel, и я хотел бы, чтобы скрипт был более масштабируемым (не применим только для этого примера, поскольку у меня каждый список с минимум 10к элементов).

Есть идеи, что не так в коде?

Спасибо заранее,

Дэн

1 ответ

Возможно ваш код имеет неправильный отступ:

for name in A:
    if name in B:
        match=name
        a_index = A.index(match)
        c_element = C[a_index]
        b_index = B.index(match)
        e_element = E[b_index]
        f_element = F[b_index]
        if c_element == e_element:
            print([match, c_element, f_element])
Другие вопросы по тегам