Python : 2 개의 iterable을 순차적으로 반복하는 방법 (zip이 아님) [duplicate]

Aug 21 2020

예를 들어 목록 및 문자열과 같이 모든 유형의 반복 가능 항목이 2 개 있다고 가정합니다.

a = [1, 2, 3]
b = "abc"

속임수없이 a와 b를 순차적으로 반복하는 파이썬 친화적 인 간결한 방법이 있습니까 (zip과 같이 병렬이 아님) (여기서 아이디어는 a와 b가 반복 가능하다는 것을 알고있는 모든 것이 될 수 있다는 것입니다)

따라서 다음과 같은 것은 없습니다.

for i in a + list(b):

이상적으로 나는 무언가를 가질 것입니다.

for i in something(a, b):
    print(i)

그것은 수행하는 것과 동일합니다

for i in a:
    print(i)
for i in b:
    print(i)

답변

1 Jab Aug 21 2020 at 04:46

당신이 찾고있는 "뭔가"는 itertools.chain:

from itertools import chain

for i in chain(a, b):
    print(i)

1
2
3
a
b
c
1 lxop Aug 21 2020 at 04:46

당신이 찾고있는 것은 itertools.chain:https://docs.python.org/3.8/library/itertools.html#itertools.chain

다음과 같이 사용합니다.

import itertools
a = [1,2,3]
b = "abc"
for i in itertools.chain(a, b):
    print(i)

생산하는

1
2
3
a
b
c
Code-Apprentice Aug 21 2020 at 04:46

itertools.chain () 이 트릭을 수행합니다. 이와 같은 것을 찾을 때이 라이브러리를 염두에 두어야합니다.