У меня есть вопрос, и мне немного сложно его объяснить, поэтому я буду использовать множество примеров, чтобы помочь вам всем понять и посмотреть, сможете ли вы помочь мне.
Скажем, у меня есть два списка, содержащие названия книг от лучших до худших, оцененных двумя людьми. Пользователь1 получил оценку lstA
, а пользователь2 получил оценку lstB
lstA = ['Harry Potter','1984','50 Shades','Dracula']
lstB = ['50 Shades','Dracula','1984','Harry Potter']
Пользователь считает, что «Гарри Поттер» лучше, чем «Дракула» (HP - индекс 0, а Дракула - индекс 3)
Пользователь два думает, что «Гарри Поттер» хуже Дракулы (HP - индекс 3, а Дракула - индекс 1)
В этом случае вернуть кортеж ('Harry Potter', 'Dracula')
[('Dracula', 'Harry Potter')
тоже нормально]
Пользователь один также оценил «50 оттенков» лучше, чем «Дракула», а второй пользователь также оценил «50 оттенков» лучше, чем «Дракула» (индексы 2, 3 и 0, 1 соответственно). В этом случае ничего не происходит.
Окончательный результат программы должен возвращать список кортежей так,
[('Harry Potter','50 Shades'), ('Harry Potter','Dracula'), ('Harry Potter','1984'), ('1984', '50 Shades'), ('1984','Dracula')]
Может ли кто-нибудь помочь мне указать правильное направление, чтобы придумать алгоритм, который дает все кортежи?