본문 바로가기

Python

[Python] enumerate 와 zip

1. enumerate

enumerate는 열거하다라는 의미로 list의 element를 추출할 때 번호를 붙여서 추출하는 방법이다. 

예시1

for i, v in enumerate(['tic', 'tac', 'toe']):
    print(i, v)
#0 tic
#1 tac
#2 toe

예시2

mylsit = ["a", "b", "c", "d"]
li = list(enumerat(mylist))
print(li)
#[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

예시3

exp = {i:j for i, j in enumerate('This is the example of enumerate.'.split())}
print(exp)
#{0: 'This', 1: 'is', 2: 'the', 3: 'example', 4: 'of', 5: 'enumerate.'}

2. zip

두 개의 list의 값을 병렬적으로 추출하는 방법

예시1

두개의 list안에 같은 index에 위치한 값들을 뽑아준다.

alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

for a, b in zip(alist, blist):
    print(a, b)

#a1 b1
#a2 b2
#a3 b3

예시2

list comprehension과 함께 사용

a, b, c = zip((1, 2, 3), (10, 20, 30), (100, 200, 300))
print(a, b, c)

#(1, 10, 100) (2, 20, 200) (3, 30, 300)

 

print([sum(x) for x in zip((1, 2, 3), (10, 20, 30), (100, 200, 300))])

#[111, 222, 333]

예시3

zip함수와 dict 생성자를 이용하면 코드 단 한줄로, 두 리스트를 합쳐 딕셔너리로 만들 수 있다.

animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}

3. enumerate + zip

alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

for i, (a, b) in enumerate(zip(alist, blist)):
    print(i, a, b)

#0 a1 b1
#1 a2 b2
#2 a3 b3​
Reference:
BoostCourse 머신러닝을 위한 파이썬
파이썬의 zip() 내장 함수로 데이터 엮기

'Python' 카테고리의 다른 글

[Python] set (집합 자료형)  (0) 2023.02.21
[Python] 우선순위 큐 (PriorityQueue)  (0) 2023.01.19
[Python] List Comprehension  (0) 2022.11.08
[Python] iterable과 iterator  (0) 2022.10.02
[Python] list 관련 메서드  (0) 2022.09.12