[Python] zip()

2021. 1. 26. 10:43Programming Language/Python

Python 내장함수, zip(*iterables)

zip(*iterables)

  • zip()동일한 개수로 이루어진 자료형을 묶어주는 역할을 한다.
  • 제너레이터로 리턴 되기 때문에, listdic 등 으로 변환 해 주어야 한다.
list1 = [1,2,3]
list2 = ["홍길동", "김철수", "박미애"]

zip_list = zip(list1, list2)

print(zip_list, type(zip_list)) # 제너레이터로 리턴
print(list(zip_list)) # 리스트로 변환

# dictionary로 변환
dic ={}

for i, s in zip(list1, list2):
    dic[i] = s

print(dic)

"""
<zip object at 0x03795868> <class 'zip'>
[(1, '홍길동'), (2, '김철수'), (3, '박미애')]
{1: '홍길동', 2: '김철수', 3: '박미애'}
"""
  • 두 자료형의 개수가 다를경우, 긴 것은 누락된다.
list1 = [1,2,3,4]
list2 = ["홍길동", "김철수", "박미애"]

zip_list = zip(list1, list2)
print(zip_list, type(zip_list))
print(list(zip_list))

"""
<zip object at 0x00DF5868> <class 'zip'>
[(1, '홍길동'), (2, '김철수'), (3, '박미애')]
"""

 

zip_longest()

  • zip_longest()를 사용하면 두 자료형의 개수가 다른 경우에도 누락시키지 않고 zip 할 수 있다.
  • zip_longest(*iterables, fillvalue = None)이며, default는 None이다.
from itertools import zip_longest

list1 = [1,2,3,4,5]
list2 = ["홍길동", "김철수", "박미애"]

zip_list = zip_longest(list1, list2)

print(zip_list, type(zip_list)) # 제너레이터로 리턴
print(list(zip_list)) # 리스트로 변환

"""
[(1, '홍길동'), (2, '김철수'), (3, '박미애'), (4, None), (5, None)]
"""
반응형

'Programming Language > Python' 카테고리의 다른 글

[Python] input()과 sys.stdin  (2) 2021.02.09
[Python] 파이썬에서 아스키코드 변환 (chr(), ord())  (0) 2021.02.07
[Python] heapq 모듈  (0) 2021.01.19
[Python] Call by.. What?  (0) 2021.01.15
[Python] divmod()  (0) 2021.01.14