for_soul
Но я вас услышал, впредь постараюсь давать более точные ТЗ.
Вам правильно говорят, не надо воспринимать это как личную обиду.
Вот смотрите, идея:
1. Из первого списка делаем такой
l1 = [1, None, 2, 3, 4, None, None]
2. Зипуем списки
получаем
[(1,1), (2, None), (3, 2), (4, 3), (5, 4), (6, None), (7, None)]
3. Дальше фильтруем и готово.
Четыре строки кода, без явных циклов и поиска вхождения.
Теперь ваше ТЗ. Вы дали для примера список 1, 1, 2, 3, 4, 4, 4. Вы даете явно отсортированную коллекцию, но в задании об этом ни слова. Вы же понимаете, что самый сложный пункт в решени - №1. И от того какие у нас исходные данные отсортированные или нет, в корне зависит решение. Например, если список отсортированный, то я бы сделал перебор списка с конца и сравнивал
, в случае если False то в итог попадает None. Это решение в один проход без дополнительных переменных, то есть самое эффективное. Но исходя из условий задачи его применять нельзя, потому что не известно действительно ли мы получаем на вход отсортированные данные или это у вас пример неудачный. Поэтому никто не хочет вам помогать, ибо как решить задачу, не зная ограничений.