🐍Python | Django

[Python] zip()

이줭 2022. 5. 30. 21:15
728x90

python에서 두 그룹의 데이터를 서로 엮어주는 내장 함수 zip()에 대해 알아보자.

 

기본적인 zip()의 사용법은 여러 개의 iterable한 객체를 인자로 받고, 각 객체가 담고 있는 원소를 짝지어 tuple형태로 반환한다.

 

아래의 예제를 보자.

n_list = [1, 2, 3]
s_list = ['A', 'B', 'C']

for z in zip(n_list, s_list):
    print(z)

'''
(1, 'A')
(2, 'B')
(3, 'C')
'''

위와 같이 여러 그룹의 데이터를 하나씩 차례로 짝을 지어준다.

 

어떤 상황에서 zip을 유용하게 사용할 수 있나요? 🙋‍♂️

 

zip은 여러 그룹의 데이터를 한 번의 루프로 처리할 수 있다. 예를 들어 3개의 문자열 내의 글자를 하나씩 루프를 돌릴 필요가 있을 때 사용할 수 있다.

for u, l, n in zip('ABCDE', 'abcde', '12345'):
    print(u, l, n)
    
'''
A a 1
B b 2
C c 3
D d 4
E e 5
'''

또한, dictionary를 만들 때도 zip을 사용 할 수 있다.

keys = ['A', 'B', 'C']
vals = [1, 2, 3]

print(dict(zip(keys, vals)))

'''
{'A': 1, 'B': 2, 'C': 3}
'''

print(dict(zip(['year', 'month', 'date'], [2022, 5, 30])))

'''
{'year': 2022, 'month': 5, 'date': 30}
'''

zip을 사용할 때 주의해야할 사항으로는 여러 그룹의 길이가 다른 경우, 가장 짧은 인자를 기준으로 tuple을 만들고 나머지는 버려진다.😮

 

이러한 점을 조심하여 사용하면 여러 상황에서 유용하게 사용할 수 있다!

 

참고 : https://www.daleseo.com/python-zip/

728x90

'🐍Python | Django' 카테고리의 다른 글

[Python] deque  (0) 2022.06.04
[Python] heapq  (0) 2022.06.03
[Python] itertools  (0) 2022.05.26
[Python] enumerate()  (0) 2022.05.25
[Python] Exception 추적  (0) 2022.05.23