[파이썬] zip으로 반복문에 리스트 여러개 같이 돌리기
- 프로그래밍/파이썬
- 2020. 6. 19. 22:31
반응형
2개의 리스트를 반복문에 같이 돌려?야 할 때 보통 아래와 같은 방법을 사용하곤 했다. 하나의 리스트를 기준으로 반복문을 돌고 다른 하나의 리스트는 인덱스를 사용하는 방법이다.
list1=[1,2,3,4,5] list2=[6,7,8,9,10] for i,v in enumerate(list1): print(v,list2[i])
1 6 2 7 3 8 4 9 5 10
하지만 zip을 사용하면 좀 더 깔끔하게 다수의 리스트에 대해 동시에 반복문을 돌릴 수 있다.
list1=[1,2,3,4,5] list2=[6,7,8,9,10] for v1,v2 in zip(list1,list2): print(v1,v2)
1 6 2 7 3 8 4 9 5 10
이러한 방식을 알았다면 아래와 같은 응용도 가능하다. [1,2,3,4,5]라는 리스트가 있을 때 1,2 / 2,3 / 3,4 와 같이 다음 요소를 연속으로 사용하는 방법이다. 물론 인덱스 i와 i+1을 사용해도 되지만 zip을 사용하는 것이 좀더 깔끔한 것 같다.
list=[1,2,3,4,5] for v_first,v_next in zip(list,list[1:]): print(v_first,v_next)
1 2 2 3 3 4 4 5
그리고 zip도 enumerate로 감쌀 수 있기 때문에 값과 인덱스 전부 얻을 수 있다.
list1=[1,2,3,4,5] list2=[6,7,8,9,10] for i,(v1,v2) in enumerate(zip(list1,list2)): print(i,v1,v2)
0 1 6 1 2 7 2 3 8 3 4 9 4 5 10
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] 바이트 문자열을 바이트배열(byte array)로 변경 (0) | 2021.08.11 |
---|---|
[파이썬] 문자열 두 글자씩 띄우기 (0) | 2021.08.08 |
[파이썬] collections 모듈, 리스트 요소별 개수 쉽게 구하기 (2) | 2020.06.18 |
[파이썬] pandas, csv 특정 열 값을 리스트로 변경하기 (2) | 2020.06.15 |
[파이썬] pandas로 csv에서 특정 값을 가진 행 찾기 (0) | 2020.06.14 |