-
[Python] zip - 데이터 묶기Programming/Python 2022. 12. 17. 14:37반응형
zip 함수에 대해 알아보자.
zip 함수는 파이썬의 기본 내장 함수로, 반복 가능(iterable)한 데이터들을 묶는 함수이다.
기본적인 사용 방법을 본 후, zip 함수의 활용도가 높은 for 문을 이용해 더 알아보도록 하자.
1. zip 기본 사용
zip 함수의 기본적인 사용 방법은 두 데이터를 묶는 것이다.
(여러 개의 데이터를 묶을 수 있지만, 간단하게 두 개로 진행하도록 하자.)
아래의 사진을 보면 number와 rainbow를 묶어 num_rainbow를 만들었다.
두 개의 list 데이터를 묶어 새로운 list를 생성한 것이다.
이러한 코드가 zip 함수의 기본적인 사용 방법인데, list뿐 아니라 다른 타입도 생성이 가능하다.


<zip 함수의 기본 사용과 결과> 2. unzip
unzip은 zip을 해제하는 기능이다.
하지만 정의된 함수는 아니고, zip 함수에 해제 연산자(*)를 붙여 이러한 기능을 수행할 수 있게 한다.
아래의 사진을 보면 unzip 기능을 이용하여 number_2와 rainbow_2의 tuple을 생성하였다.


<unzip 기능 사용과 결과> 3. for 문 활용
이제 zip 함수를 for 문에서 활용해보도록 하자.
zip 함수는 앞에서 설명했듯이 반복 가능한 데이터를 이용하기 때문에 for 문과 잘 어울린다.
아래의 사진을 보면 kor과 eng라는 두 list의 데이터를 받아 num_season tuple을 생성하였다.
for 문으로 하나씩 만들어진 것을 확인할 수 있다.


<for 문 활용 1> 이번에는 for 문과 zip을 이용해 문자열에서 데이터를 추출해 묶어보도록 하자.
zip을 이용해 세 개의 문자열에서 하나씩 각 문자를 추출한 모습을 확인할 수 있다.


<for 문 활용 2> 4. 주의 사항
zip 함수는 반복 가능한 데이터를 묶는다고 했다.
그런데 묶으려고 하는 데이터의 길이가 다를 때의 결과는 어떻게 나올까??
아래의 사진을 보면, num은 4개의 데이터가 들어있고 time은 3개의 데이터가 들어있다.
이 두 데이터를 zip 함수로 묶어 결과를 출력해보면 3개의 데이터가 나타난다.
즉, zip 함수는 묶으려는 데이터의 길이가 다를 때 가장 짧은 데이터를 기준으로 묶는다는 것을 알 수 있다.


<데이터의 길이가 다를 때의 결과> 5. zip 함수 활용
프로그래머스의 최솟값 만들기(Lv.2) 문제를 zip 함수를 활용해 풀어보도록 하자.
아래의 사진은 zip 함수를 사용하지 않고, 문제를 풀었을 때의 코드이다.
통과된 뒤, 나름 괜찮은 방법이라고 생각하고 다른 사람들의 풀이를 보았다.

<zip 함수 미사용 풀이> 그리고 굉장히 간단한 코드를 발견했다.. (한 줄 코드로 작성하였지만, 풀어서 작성하였다.)

<zip 함수를 활용 풀이> 이렇듯 zip 함수를 활용하면 반복 가능한 데이터들을 묶어 간단하게 코드 작성을 할 수 있다.
반응형'Programming > Python' 카테고리의 다른 글
[Python] enumerate - 인덱스 표현 (0) 2022.09.26 [Python] chr, ord - 문자/Unicode 변환 (0) 2022.09.13 [Python] split - 문자열 자르기 (0) 2022.09.12 [Python] isinstance - 자료형 확인 (0) 2022.08.26