Загружаем изображение…
Знаете, что 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 | #совет