[python] zip

민지의 회고록·2023년 7월 14일

1. zip()

  • 리스트와 같은 순회 가능한(iterable) 객체를 받아 각 원소에 짝을 지어 지어 튜플 형태로 차례대로 접근 할 수 있게 만든 것.

  • 문제로 알아보자!
    문제 링크 : https://www.acmicpc.net/problem/2738

  • 코드

n, m = map(int, input().split())

a_l = []

for i in range(n*2):
    a_l.append(list(map(int, input().split())))

ans = []
for i in range(n):
    ans.append([x + y for x,y in zip(a_l[i], a_l[i+n])])
    print(' '.join(map(str, ans[i])))
ans.append([x + y for x,y in zip(a_l[i], a_l[i+n])])
  • 문장을 해석해보면, a_l[i]과 a_l[i+n] 배열의 요소를 하나씩 짝을 지어 x, y 변수로 읽어들여 넣어 x+y인 값을 ans 배열에 삽입하고 있습니다.

이렇듯 짝을 지어 x , y 변수로 읽어올 수 있었던 것은 zip 함수를 사용하여 차례대로 접근할 수 있게 됐기 때문이다.

🍎 결국 for p in zip(a_l[i], a_l[i+n])에서 p를 출력해보면
(1, 3)
(1, 3)
(1, 3)
...
짝지어 나오게 된다.

각 객체의 길이를 조심하자! 길이가 맞지 않으면 그 만큼은 버린다~!

2. 병렬처리

여러 2개 이상의 그룹 데이터를 루프를 돌려 처리할 수 있다.

for a, b, c in zip("abcde", "12345", "78910")
	print(a, b, c)

--> 출력
a 1 7
b 2 8
...

profile
민지가 공부한 내용을 회고합니다~~

0개의 댓글