Я ищу идеи Python для решения следующей проблемы.Найти дублирующий элемент в списке списков
Учитывая список списков ...
[[20, 21, 22], [17, 18, 19, 20], [10, 11, 12, 13]]
Если есть дубликат элемент, который является общим между любым или всеми списками, вернуть True. Если все элементы уникальны, верните False.
В приведенном выше примере 20 является общим и вернет True. Пример ниже вернет False, потому что все числа уникальны между списками.
[[20, 21, 22], [17, 18, 19], [10, 11, 12, 13]]
И, наконец, тестирование дубликатов в отдельном списке не требуется, поскольку числа всегда являются последовательными.
FYI - эта проблема будет использоваться для оптимизации ежемесячного графика членов экипажа авиакомпании. Каждый список представляет собой поездки на 3, 4 или 5 дней, которые не могут пересекаться.
BTW - эта проблема не является заданием, а личным стремлением работать меньше и получать больше :) Жаль, что было неясно. Я попробовал метод грубой силы, который работает, но надеялся на более элегантный метод Pythonic. Я ценю все ответы, поскольку они приводят меня в новые области программирования на Python.
Вы имеете в виду между любыми двумя списками, а не между всеми списками? – abarnert
Для одного лайнера, который вы не поймете, и ваш учитель не даст вам возможности, если это назначение, на которое вы не пытались выполнить какую-либо работу: 'return Counter (chain.from_iterable (ll)). Most_common (1) [0] [1]> 1'. – abarnert
@abarnert Но для ... [[20,20], [], []] это возвращает true o.0 – Shashank