Python 강좌 : 제 24강 - 집 함수

Python zip

Python 강좌 : 제 24강 - 집 함수
[ Python ] - 윤대희

집(zip) 함수


집(zip) 함수는 길이가 같은 반복 가능한 데이터(목록, 사전 등)를 하나로 묶어 반환하는 함수입니다.

주로, 형태가 다른 값들을 하나의 구조나 변수로 활용하기 위해 사용합니다.

집 함수는 결괏값 = map(범위 1, 범위 2, ...)의 형태로 사용합니다.

목록(list), 집합(set), 사전(dict) 등을 묶어 결과를 반환합니다.


함수 생성


a = "YUN"
b = [1, 2, 3]
c = ("하나", "둘", "셋")

print(list(zip(a, b, c)))
print(set(zip(a, b, c)))
print(dict(zip(a, b)))
결과
[(‘Y’, 1, ‘하나’), (‘U’, 2, ‘둘’), (‘N’, 3, ‘셋’)]
{(‘Y’, 1, ‘하나’), (‘N’, 3, ‘셋’), (‘U’, 2, ‘둘’)}
{‘Y’: 1, ‘U’: 2, ‘N’: 3}

zip(자료형1, 자료형2, ....)을 사용하여 묶어 결과를 반환합니다.

집(zip) 함수는 list() 또는 set() 등의 구문을 추가하지 않으면 <zip object at 0x0506C940> 등의 iterator 형태로 출력됩니다.

dict()의 경우 keyvalue로 구성되어 있으므로 3개 이상은 묶을 수 없습니다.



반복문 적용


L1 = ["A", "B", "C", "D"]
L2 = ["가", "나", "다", "라"]


for i, j in zip(L1, L2):
    print(i, j)
결과
A 가
B 나
C 다
D 라

집(zip) 함수는 서로 다른 자료형을 하나로 묶을 수 있기 때문에, 두 종류 이상의 색인(index)을 반복할 수 있습니다.

이 특성으로 인해, 다중 반복문(중첩 반복문)을 사용하지 않고 하나의 반복문으로 간소화 할 수 있습니다.



언패킹(Unpacking) / 패킹(Packing)


numbers = [[1, 2, 3], [4, 5, 6]]

print(*numbers)
print(list(zip(*numbers)))
print(list(zip([1, 2, 3], [4, 5, 6])))
결과
[1, 2, 3] [4, 5, 6]
[(1, 4), (2, 5), (3, 6)]
[(1, 4), (2, 5), (3, 6)]

반복 가능한 객체에 별표(Asterisk, *)를 함께 사용한다면, 언패킹되어 묶여있던 객체들이 나눠지게 됩니다.

즉, 2차원 리스트는 1차원 리스트 만큼 나눠서 반환하게 됩니다.

이 때, 집 함수를 사용하여 다시 패킹한다면 각 원소마다 묶기 때문에 여러 반복문을 구성하지 않아도 다시 패킹 할 수 있습니다.

zip(*n차원 객체)zip(n-1차원 객체1, n-1차원 객체2, ...)로 볼 수 있습니다.

그러므로, 반복 가능한 객체의 원소들을 대상으로 새로운 데이터를 구현할 수 있습니다.



Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post Python 강좌 : 제 23강 - 맵 함수 ⤧  Next post Python 강좌 : 제 25강 - 파일 읽기 & 쓰기
    Python Category