I

두 개의 리스트를 한꺼번에 for문으로 돌리기 (+enumerate)

· 2021-05-01 (토) 21:10:41 · 2892 · 2

두 개의 리스트를 for문으로 돌린다면 이중 for문이 우선적으로 떠오르시겠지만,

 

두 리스트의 인덱스를 동일하게 변경하여야 되는 경우에는 이중 for문을 사용할 수 없겠죠 ^^

 

 

예컨대 다음과 같은 두 리스트(도시, 인구수)가 있는 경우를 상정해보겠습니다.

 

[code]

city = ['서울', '부산', '대구', '인천', '대전']
pop = [970, 340, 290, 240, 150]

[/code]

 

위와 같은 경우에 for문에 range()를 이용하여 인덱스 자체를 직접 변경해주는 방법도 물론 있겠지만,

 

제 개인적으로는 다음과 같이 zip()을 이용하는 방법이 보다 파이써닉하다고 생각합니다 :)

 

[code]

city = ['서울', '부산', '대구', '인천', '대전']

pop = [970, 340, 290, 240, 150]

for i, j in zip(city, pop):

    print(f'{i}의 인구는 {j}만입니다.')

[/code]

 

 

여기에서 한 걸음 더 나아가 다음과 같은 방법으로 for문에 두 개의 리스트를 넣고 한꺼번에 돌리는 동시에 enumerate까지 사용할 수 있습니다!

 

[code]

for idx, (value1, value2) in enumerate(zip(list1, list2)):

    print(idx, value1, value2)

[/code]

 

주의하실 점은 첫 번째 줄에서 (value1, value2) 이렇게 괄호를 반드시 사용하여야 됩니다 ^^

 

 

+)

 

참고로 Python 2에서는 위 방법을 사용할 수 없고, 다음과 같이 itertools.izip()을 사용하여야 됩니다.

 

[code]

import itertools

 

for a, b in itertools.izip(list_a, list_b):

    print(a, b)

[/code]

|

댓글 2개

저도 zip 생각하고 클릭했어요~
@선구자 옙 저와 같은 생각을 갖고 계셨다니 정말 반갑네요~ ^-^
그럼 선구자 님께서도 즐거운 주말 되시고,
코로나19로 어려운 시국이지만 항상 건강하세요! :)
댓글을 작성하시려면 로그인이 필요합니다.

파이썬 게시판 만들기

121건

+
제목 글쓴이 날짜 조회
24-02-08 조회 991
24-01-19 조회 813
23-12-24 조회 806
23-08-03 조회 834
23-07-27 조회 1,053
23-07-27 조회 928
23-07-18 조회 1,326
23-07-12 조회 1,043
23-07-12 조회 1,049
23-07-07 조회 1,339
23-06-30 조회 1,264
23-06-28 조회 1,097
22-09-04 조회 1,409
22-08-17 조회 1,447
22-07-22 조회 1,460
22-05-24 조회 1,484
22-02-02 조회 1,412
21-12-29 조회 1,687
21-12-24 조회 1,609
21-12-15 조회 1,838
21-05-29 조회 1,612
21-05-01 조회 2,893
21-03-16 조회 1,603
21-03-16 조회 1,426
21-03-01 조회 1,545
21-02-16 조회 2,010
21-01-02 조회 2,002
20-12-14 조회 1,723
20-12-02 조회 1,903
20-12-02 조회 1,909