[Python] zip() 함수에 대하여

2020. 9. 28. 20:01Algorithm

오늘도 프로그래머스 연습문제를 풀었는데 해쉬(Hash) 관련 문제에서 자꾸 오류가 난다. 몇번 시도를 해보다가 안되서 답을 봤는데 zip() 이라는 함수가 있다. 처음보는 함수라 찾아본 결과 아주 유용하게 활용할 수 있을 것 같아 포스팅으로 남겨본다.

 

먼저 zip()은 내장함수로, 동일한 개수를 가진 자료형을 묶어주는 역할을 한단다. 설명이 애매한데 동일한 개수를 가진 자료형이면 list도 되고 tuple도 되고 dict도 된다는 말 아닌가? 아무튼간 zip은 두 개나 그 이상의 시퀀스를 받아들여서 튜플들의 리스트로 만드는 것을 의미한다.

 

예를 들어서

'abc'라는 문자열과 [0,1,2]로 이루어진 리스트가 있다고 할 때, 이 둘을 zip하면 다음과 같은 결과가 나온다.

>>> s = 'abc'
>>> t = [0, 1, 2]
>>> zip(s, t)
[('a', 0), ('b', 1), ('c', 2)]

 

 

 

리스트와 리스트 간에도 zip 함수는 유용하게 사용되는데, for을 이용하면 두개의 리스트의 요소들을 비교할 수 있다.

 for x, y in zip(t1, t2):
        if x == y:
            return True
       	else:
            return False

 

추가로, 시퀀스의 요소와 지수를 얻어내야 할 일이 있다면 enumerate를 사용하자

for index, element in enumerate('abc'):
    print index, element
 
# 출력결과
"""
0 a
1 b
2 c
"""

 

'Algorithm' 카테고리의 다른 글

합병정렬(Merge Sort) 구현하기  (0) 2020.08.12
선택정렬(Selection Sort) 구현하기  (1) 2020.08.12
삽입정렬(Insertion Sort) 구현하기  (1) 2020.08.12