반응형

 

 

Enumerate는 리스트의 인덱스와 함께 값을 추출할 때 사용한다.

Zip은 여러 개의 리스트에서 각각의 값을 병렬적으로 가져올 때 사용한다.

 

Enumerate

for i,j in enumerate(['tic','tac','toe']):
    print(i,j)

myList = ['a','b','c','d']
print(list(enumerate(myList)))

myTuple = {i:j for i,j in enumerate('Apple Banana Computer Dictionary Eraser Food'.split())}
print(myTuple)
0 tic
1 tac
2 toe
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
{0: 'Apple', 1: 'Banana', 2: 'Computer', 3: 'Dictionary', 4: 'Eraser', 5: 'Food'}

 

 

 

 

Zip

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

for a, b in zip(alist, blist):
    print(a,b)
a1 b1
a2 b2
a3 b3

 

 

 

Zip 과 Enumerate를 같이 사용하면?

# zip + enumerate
for i, (a, b) in enumerate(zip(alist, blist)):
    print(i,a,b)
0 a1 b1
1 a2 b2
2 a3 b3

이 때, (a,b)에서 괄호를 꼭 붙여 주어야 한다!!

 

 

 

리스트나 튜플에서 각각의 값을 꺼내어 새로운 리스트를 만들 수도 있다.

# 리스트 활용
cList = [1,2,3]
dList = [10,20,30]
eList = [100,200,300]

result = [sum(x) for x in zip(cList, dList, eList)]
print(result)

# 튜플 활용
aTuple = (1,2,3)
bTuple = (10,20,30)
cTuple = (100,200,300)

result = [sum(x) for x in zip(aTuple, bTuple, cTuple)]
print(result)
[111, 222, 333]
[111, 222, 333]

 

 

 

 

 

반응형

+ Recent posts