>>> next((v[-1] for v in reversed(list(zip(*[mixed_list[i:] for i in range(n+1)]))) if all(v)), None)
>>> 10
Объяснение
zip(*[mixed_list[i:] for i in range(n+1)
вернет n + 1 последовательных чисел в качестве кортежа
>>> list(zip(*[mixed_list[i:] for i in range(n+1)]))
[(None, 1, 3), (1, 3, None), (3, None, 5), (None, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 10), (8, 10, None), (10, None, None), (None, None, 11), (None, 11, 12), (11, 12, None), (12, None, None)]
Затем вы отмените его
>>> list(reversed(list(zip(*[mixed_list[i:] for i in range(n+1)]))))
[(12, None, None), (11, 12, None), (None, 11, 12), (None, None, 11), (10, None, None), (8, 10, None), (7, 8, 10), (6, 7, 8), (5, 6, 7), (None, 5, 6), (3, None, 5), (1, 3, None), (None, 1, 3)]
Затем вы фильтруете его только тогда, когда кортеж содержит все числа и возвращает только первое число из кортежа
>>> [v[-1] for v in reversed(list(zip(*[mixed_list[i:] for i in range(n+1)]))) if all(v)]
[10, 8, 7]
. Все, что вам нужно сделать, это получить первое число из возвращаемого списка:)
Таким образом, проблема заключалась в том, что я неправильно использовал project_id
, когда gcloud config set project
и gcloud по умолчанию почему-то отказались от организации.
Поэтому мне пришлось найти правильный идентификатор проекта, используя gcloud projects list
, а затем использовать gcloud config set project {PROJECT-ID}
(, а не название проекта!)