Syntax(구문) :
zip(iterable)
Parameters(매개변수) :
- iterable : 반복가능한 객체(iterable)가 입력 되어야 함. <1개 이상>
필수적으로 입력받아야 한다.
iterable | ||
Data type(데이터 타입) | iterable (반복가능한 객체) Ex:) list, set, dict, tuple, string |
|
입력 가능한 개수 | 1개 이상 | |
필수 여부 | 필수 아님 | |
설명 | 서로 다른 iterable 들을 하나씩 순서에 맞춰 tuple 에 넣는다. |
Return Value(리턴 값):
data type: class 'zip'
해설: iterable에 입력받은 객체들의 각 값들을 순서에 맞춰서 tuple에 넣는 동작을 수행한다. 순서대로 진행되기 때문에 return 값은 zip class 이다.
Example:
<Iterable이 없는 경우>
zip함수의 매개변수인 iterable은 필수로 들어가야 하는 변수가 아니므로 아무것도 넣지 않은 상태에서 실행시켜 봤다.
zip만을 출력한다면 zip 객체를 출력하고.
이를 list로 감싸준다면 비어있는 list를 출력한다.
<Iterable이 1개인 경우>
Iterable에 dict 자료형의 객체를 넣은 경우다.
zip 함수의 결과로 나온 객체를 list로 묶은 경우, ex_d의 keys() 값들이 각 튜플의 앞에 위치하고 뒤는 값이 비어있다.
<Iterable이 2개인 경우>
주로 사용하는 경우인, Iterable 2개가 입력된 경우다.
각 l1과 l2 list의 값들을 열에 맞춰 묶고 tuple에 집어넣는다.
따라서 index가 0인 9,3이 하나의 튜플에 묶여 (9,3)이 되고 그 다음 인덱스의 값인 8,4가 (8,4)가 된다.
<Iterable이 3개인 경우>
이제 2개 다음은 3개다. Iterable 3개가 입력된 경우를 살펴보도록 하겠다.
각 l1, l2, l3에서 index가 0인 값들을 9, 3, 13이다. 이 값들을 순서대로 tuple에 집어넣는다면 (9,3,13)이고 이는 출력값과 동일하다.
이후 Iterable이 3개 이상 입력되는 경우도 다 동일한 방식으로 적용된다.
<Iterable의 길이가 서로 다른 경우>
여지껏 입력받은 Iterable간의 길이가 같은 경우만을 살펴봤다.
그렇다면 서로 길이가 다른 경우에는 어떤 식으로 작동할까?
보다시피 l1의 뒤쪽 2개의 값이 제외된걸 확인할 수 있다. 이렇듯 zip함수는 입력받은 iterable들 중 가장 짧은 객체를 기준으로 삼고 나머지 값들은 제외한다.
<응용>
개인적으로 zip함수를 자주 쓰지 않는다.
다만 기존에 가공할 필요가 있는 iterable이 있고 그 객체가 다른 객체와 묶일 필요가 있는 경우, 혹은 인덱스 처리와 tuple 타입을 활용할 필요가 있는 경우에 사용한다.
총평:
활용 빈도(1.8 / 5)
zip 함수는 python에 내장된 기본 함수이다.
많이 쓰이진 않는다.
여러가지 iterable 객체들을 묶을 필요가 있는 경우 사용된다.
'Python > Python 이론' 카테고리의 다른 글
[Python] Dict자료형 get 함수 사용 방법 (0) | 2022.09.27 |
---|---|
[Python] map함수 사용 방법 (0) | 2022.09.25 |