Python에서 중첩 루프 끊기

파이썬에서 중첩 루프를 살펴봅시다!

내부 루프의 코드를 사용하여 두 루프에서 어떻게 벗어날 수 있습니까?

for i in range(1, 4):
    for j in range(1, 4):
        if j == 2:
            break # But please also break the outer loop!
        print(i, j)


그렇지 않으면 차단



단 하나의 솔루션:

만약 우리가 내부 루프에 있는 어떤 𝚋ювана𝚔에 의해 중단되지 않는다면(즉, 이것이 의미하는 바입니다), 나머지 외부 루프는 실행되지 않을 것입니다(𝚌에만라)
그렇다면 외부 루프도 종료됩니다.

for i in range(1, 4):
    for j in range(1, 4):
        print(i, j)
        if j == 2:
            break
    else:
        continue
    break


itertools



그다지 보기 좋지 않으며 이 코드를 보는 사람은 두 번 생각해야 합니다.

그래서, 여기에 더 우아한 해결책이 있습니다.

이 방법은 우리의 두 루프를 하나로 요약합니다.

import itertools
for i, j in itertools.product(range(1, 4), range(1, 4)):
    print(i, j)
    if j == 2:
        break


커스텀 생성기 함수



제너레이터 함수를 사용하여 우리는 방법의 동작을 복제할 수 있습니다.

키워드는 함수의 결과를 생성기로 만듭니다.

def generator(outer_iterable, inner_iterable):
    for i in outer_iterable:
        for j in inner_iterable:
            yield (i, j)

for (i, j) in generator(range(1, 4), range(1, 4)):
    print(i, j)
    if j == 2:
        break


Twitter에서 토론 팔로우











기본 코드









💡🐍 파이썬에서 중첩 루프를 살펴봅시다! 내부 루프에 코드가 있는 두 루프의 🛑를 어떻게 분리할 수 있습니까? 살펴봅시다! 👇


오전 10:02 - 2022년 5월 20일

좋은 웹페이지 즐겨찾기