[TIL] 내가 잘 안 써서 모르는 파이썬 메소드 zip과 unzip 간단 정리

ssook·2023년 11월 20일
0

TIL

목록 보기
15/17
post-thumbnail

특정한 메소드가 아니라, 내장 함수 또는 기능인 zipunzip은 기본 라이브러리에 포함되어 있어 별도의 import가 필요하지 않음.

zip 함수

라이브러리
내장 함수

사용 조건
여러 개의 iterable 객체(리스트, 튜플 등)를 동시에 반복하며
각 객체의 같은 인덱스에 있는 요소들을 튜플로 묶어 새로운 iterable을 생성할 때 사용함.

역할 및 예시 코드

# zip 함수를 사용하여 두 리스트를 묶기
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)

# 결과 출력
for item in zipped:
    print(item)

위 코드는 다음과 같은 결과를 출력함.

(1, 'a') (2, 'b') (3, 'c')


unzip 함수

zip 함수의 결과를 다시 원래의 리스트로 풀어내려면 zip(*iterables) 형태로 사용해야 함.
이를 unzip이라고 부르기도 합니다.

역할 및 예시 코드

# zip 함수를 사용하여 두 리스트를 묶기
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)

# unzip을 통해 다시 원래의 리스트로 분리
unzipped = list(zip(*zipped))

# 결과 출력
print(unzipped)

위 코드는 다음과 같은 결과를 출력함.

[(1, 2, 3), ('a', 'b', 'c')]


다른 방식으로 같은 로직 수행

zip 함수를 이용하지 않고 같은 작업을 수행하려면
range 함수와 인덱스를 활용하여 리스트의 각 요소에 접근할 수 있음.

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

# 직접 인덱스를 활용하여 두 리스트를 묶기
result = [(list1[i], list2[i]) for i in range(min(len(list1), len(list2)))]

# 결과 출력
print(result)

이 방식은 결과적으로 zip 함수와 비슷한 동작을 진행함.
다만, zip 함수는 간결하게 표현할 수 있고, 인덱스를 직접 다루지 않아도 되어 코드가 더 간단해 짐.

profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글

관련 채용 정보