Загружаем изображение…

Знаете, что Python может сам развернуть вложенный цикл в одну строку?



Можно разворачивать вложенные циклы, сохраняя линейную логику и не создавая лишних промежуточных шагов.

Генерируем декартово произведение без append() и временных списков:
pairs = [(x, y) for x in range(3) for y in range(2)]

Результат:
[(0,0), (0,1), (1,0), (1,1), (2,0), (2,1)]

То же самое, но многие новички пишут так:
pairs = []
for x in range(3):
for y in range(2):
pairs.append((x, y))


Можно сразу ограничивать условиями, без глубокой вложенности if:
valid = [(x, y) for x in xs for y in ys if x != y]

Если логика читается как перебери X и для каждого Y, её можно писать плоско, без вложенных блоков, Python это поймёт и выполнит эффективно.

Python Ready | #совет
Просмотры: 232
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти