차밍이

[파이썬] zip 내장함수 - 묶어서 데이터 가져오기 본문

파이썬/기본 문법 정리

[파이썬] zip 내장함수 - 묶어서 데이터 가져오기

2021. 5. 26. 10:54
반응형

zip함수를 사용하면 여러 그룹의 데이터를 묶어서 출력해줄 수 있습니다.

zip 함수

zip()함수는 iterable 객체를 인자로 받아서 사용합니다. 여러 개의 iterable객체를 받은 후 자료형 들을 묶어서 튜플 형태로 출력해줍니다.

# zip(*iterable) : 동일한 개수로 이루어진 자료형을 묶어 줌
a = ['one', 'two', 'three']
b = ['a', 'b', 'c']
list(zip(a, b))
>>> [('one', 'a'), ('two', 'b'), ('three', 'c')]

a라는 리스트와 b라는 리스트의 값들이 index 순서에 따라서 묶어진 것을 확인할 수 있습니다.

# 두 리스트의 요소 끄집어내기
# zip 함수 사용한 방법
for val1, val2 in zip(a, b):
    print(val1, val2)

>>>
one a
two b
three c

반복문에서 특히나 활용하기가 좋습니다. 반복문을 수행할 때, 두 개의 리스트의 값을 각각 가져와야 할 경우 매우 유용하게 사용할 수 있습니다.

zip 함수 활용

1. 전치행렬 생성하기

# 전치행렬 생성
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = list(zip(*a))
b
>>> [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

a 리스트의 각 요소인 리스트 들을 zip으로 묶어줄 수 있습니다. 이를 통해서 transform 한 것과 같은 효과를 확인할 수 있습니다.

2. dictionary 만들기

A = ['name', 'age', 'phone', 'gender']
B = ['CHAN', 28, '010-XXXX-YYYY', 'male']
d = dict(zip(A, B))
d
>>>
{'name': 'CHAN', 'age': 28, 'phone': '010-XXXX-YYYY', 'gender': 'male'}

A 리스트의 값을 key 값으로 사용하고 B 리스트의 값을 value 값으로 사용하여 딕셔너리를 생성합니다.

이런 방식으로 dictionary를 선언해야 할 때, 손쉽게 만들어줄 수 있을 것입니다.

enumerate와 마찬가지로 zip함수는 매우 활용도가 높은 내장함수이므로 잘 숙지하고 익히면 좋습니다.

반응형

관련된 글 보기

Comments