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을 만들고 나머지는 버려진다.😮
이러한 점을 조심하여 사용하면 여러 상황에서 유용하게 사용할 수 있다!
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 |