-
zip파이썬 Study/라이브러리 2021. 3. 14. 17:26
참조 :
https://excelsior-cjh.tistory.com/100
■ zip
1) 정의 :
동일한 개수로 이루어진 자료형으로 묶어주는 역할을 하는 함수
zip(*iterables) # 내장함수
2) 예시 :
d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange':2} min_item = min(zip(d.values(), d.keys())) max_item = max(zip(d.values(), d.keys())) print(min_item) print(max_item) >>> (1, 'pear') >>> (4, 'apple') # min / max 정의 사용 d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange':2} min_item = min(d, key=lambda x : d[x]) max_item = max(d, key=lambda x : d[x]) print(min_item) print(max_item) >>> pear >>> apple
■ zip + enumerate
1) 정의 :
zip, enumeration 둘다 객체인데, 해당하는 원소를 for 뒤에 배치해서 사용
2) 예시 :
a = ['I', 'love', 'BTS'] b = ['Jungkook', 'Jimin', 'Sugar'] for i, (a,b) in enumerate(zip(a,b)): print(i, a,b) >>> 0 I Jungkook >>> 1 love Jimin >>> 2 BTS Sugar
■ zip 과 iterable 간의 개수
- Tip
Zip return은 zip class이므로, 평소 사용하는 객체 취급하려면 list( )로 타입 변환 해주어야 함
→ list(<zipped iterable>)li1 = [1,2,3] li2 = ['a','b','c'] zipped = zip(li1, li2) print(type(zipped)) print(zipped) >>> <class 'zip'> >>> <zip object at 0x7f5b8e16bb40>
1) iterable(ex : list) 수가 같을 필요는 없다
list_1 = [1,2,3,4] list_2 = [5,6,7,8,9] print(list(zip(list_1, list_2))) >>> [(1, 5), (2, 6), (3, 7), (4, 8)]
2) multiple iterable 간의 zipping 도 가능
list_1 = [1,2,3,4] list_2 = [5,6,7,8,9] list_3 = ['a','b','c','d','e'] print(list(zip(list_1, list_2, list_3))) >>> [(1, 5, 'a'), (2, 6, 'b'), (3, 7, 'c'), (4, 8, 'd')]
반응형'파이썬 Study > 라이브러리' 카테고리의 다른 글
lambda (1) 2021.03.14 iterable / iterator (1) 2021.03.14 max / min / sum (1) 2021.03.14 functools (1) 2021.03.14 sort / sorted (1) 2021.03.14