Я очень новичок в Python и программировании в целом. Я нашел много полезных статей на этом сайте, но я также смутил себя в отношении того, что лучший способ выполнить то, что мне нужно.Python Сравнение вложенных списков
Проще говоря, у меня есть 2 файла csv, RemoteLA и Master. Каждая позиция содержит Order #, LastName, FirstName, MI, Account #. Мне нужно найти элементы из RemoteLA, которые не находятся в главном файле. Моя основная проблема заключается в совпадении/проверке Order # сначала, затем в Account #, затем в имени (именах). Есть случаи, когда у меня могут быть два одинаковых имени заказа #, но разные имена и учетные записи #, и это нормально, если он указан в главном файле. Наконец, если номер заказа RemoteLA находится в главном файле, но номер учетной записи указан неверно, я хотел бы распечатать его на другом выходе, чем если бы номер заказа не был в основном файле. Ниже приведены мои упрощенные списки.
RemoteLA = [['100', 'JACKSON', 'CHRIS', 'D', '12344'], ['110', 'SMITH', 'JANET', 'L' '1223'], ['120', 'STONE', 'MAX', 'W', '1233']]
Master = [['100', 'JACKSON', 'CHRIS', 'D', '1234'], ['90', 'BARST', 'JOEY', 'D', '1344'], ['80', 'NORDON', 'BEV', 'A', '1122'], ['120', 'STONE', 'MAX', 'W', '1233']]
Как я уже сказал, я попробовал много вещей, используя наборы, список кортежей и т.д. Мой последний «попытка» использовал время цикла следующим образом, я просто пытался увидеть, если я мог бы получить результаты Я хотел, но, похоже, я все еще делаю что-то неправильно.
i=0
while i < len(RemoteLA):
j = 0
while j < len(Master):
if RemoteLA[i][0] == Master[j][0]:
if RemoteLA[i][1] == Master[j][1]:
if RemoteLA[i][2] == Master[j][2]:
print('All match')
elif RemoteLA[i][2] == '9999':
pass
else:
print('Account number does not match')
else:
print('Name does not match')
else:
print('Order number does not match')
j = j + 1
i = i + 1
Любая помощь или толчок в правильном направлении была бы очень оценена. Извините за многословие. Спасибо.
Ваш 3 ifs может быть заменен на 'all (a == b для a, b в zip (RemoteLA [i] [, Master [j]))' хотя это 9999 вещь странная – njzk2
в Python вы не делать такие неприятные индексные переменные. Лучше использовать ** для ll в RemoteLA ** и т. Д. Нет необходимости иметь такие переменные индекса стиля C – tschm
У меня на самом деле есть 4 'Удаленных' файла для сравнения, и в одном из них номер учетной записи указан со всеми 9 '- так до это фиксируется, любые номера счетов, перечисленные как 9999, я хочу пройти без каких-либо действий. – ceitel