[파이썬] zip() 내장함수로 데이터 엮기

sohee jung·2022년 9월 16일
0

[파이썬] 기초 문법

목록 보기
7/11
post-thumbnail

zip() 기본 문법

zip() 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 터플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환

>>> numbers = [1, 2, 3]
>>> letters = ["A", "B", "C"]
>>> for pair in zip(numbers, letters):
...     print(pair)
...
(1, 'A')
(2, 'B')
(3, 'C')

numbers 리스트와 letters 리스트를 zip() 함수에 인자로 넘겨서 호출 후에, for 문으로 zip() 함수의 반환값을 대상으로 루프를 돌면서 차례로 출력


병렬 처리

2개 이상의 인자를 넘겨서 병렬 처리도 가능

>>> for number, upper, lower in zip("12345", "ABCDE", "abcde"):
...     print(number, upper, lower)
...
1 A a
2 B b
3 C c
4 D d
5 E e

unzip()

>>> numbers = (1, 2, 3)
>>> letters = ("A", "B", "C")
>>> pairs = list(zip(numbers, letters))
>>> print(pairs)
[(1, 'A'), (2, 'B'), (3, 'C')]


>>> numbers, letters = zip(*pairs)
>>> numbers
(1, 2, 3)
>>> letters
('A', 'B', 'C')

사전 변환

  • zip() 함수를 이용하면 두 개의 리스트나 터플 부터 쉽게 사전(dictionary)을 만들 수 있음
  • 키를 담고 있는 리스트와 값을 담고 있는 리스트를 zip() 함수에 넘긴 후, 그 결과를 다시 dict() 함수에 넘김
>>> keys = [1, 2, 3]
>>> values = ["A", "B", "C"]
>>> dict(zip(keys, values))
{1: 'A', 2: 'B', 3: 'C'}

dict() 함수에 키와 값으로 이루어진 튜플을 넘기면 사전이 생성되는 원리 이용

profile
짱이 될거야

0개의 댓글