Управление списками 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])