본문 바로가기

Programming/Python

[Python] 헷갈리는 문법 정리1 - enumerate() & zip()

enumerate()

enumerate() 함수는 인자의 값을 추출 할 때 인덱스를 함께 추출하는 기법.

인덱스 번호와 리스트 원소를 튜플 형태로 반환

 

fruit = ['apple', 'banana', 'strawberry', 'orange']
for i in enumerate(fruit):
    print(i)
(0, 'apple')
(1, 'banana')
(2, 'strawberry')
(3, 'orange')
fruit = ['apple', 'banana', 'strawberry', 'orange']
for i, j in enumerate(fruit):
    print('index : {} , value : {}'.format(i,j))
index : 0 , value : apple
index : 1 , value : banana
index : 2 , value : strawberry
index : 3 , value : orange

 

zip()

zip() 함수는 여러 개의 반복 가능한 객체(iterator)를 인자로 받아 동일한 개수로 이루어진 자료형을 묶어 튜플 형태로 반환

 

num = [1,2,3,4]
fruit = ['apple', 'banana', 'strawberry', 'orange']
for pair in zip(num, fruit):
    print(pair)
(1, 'apple')
(2, 'banana')
(3, 'strawberry')
(4, 'orange')

 

zip() 함수는 아래와 같이 2개 이상의 인자를 병렬 처리 할 수 있다. 

 

num = [1,2,3,4]
alpha = ['a', 'b', 'c', 'd']
fruit = ['apple', 'banana', 'strawberry', 'orange']
for i, j, k in zip(num, alpha, fruit):
    print(i, j, k)
1 a apple
2 b banana
3 c strawberry
4 d orange

 

zip() 함수를 활용해 리스트나 튜플을 딕셔너리(dictionary)로 만들 수 있다.  

key와 value가 있는 리스트를 zip() 함수로 합친 후뒤 -> dict() 함수 사용

 

key = ['a', 'b', 'c']
value = [1, 2, 3]
dictionary = dict(zip(key, value))
print(dictionary)
{'a': 1, 'b': 2, 'c': 3}

 

zip() 함수를 enumerate() 함수와 함께 사용해 인덱스 추출도 가능

 

key = ['a', 'b', 'c']
value = [1, 2, 3]

# zip()은 튜플 형태를 반환하므로 (j,k)로 묶어주기
for i, (j, k) in enumerate(zip(key, value)):
    print(i, j, k)
0 a 1
1 b 2
2 c 3