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