본문 바로가기

CS/Python

Enumerate & Zip

@Enumerate

-리스트에서 값 추출할 때 인덱스 번호를 같이 추출하는 함수

 

 

실습)

# Unpacking index and value in list
for i, v in enumerate(['tic', 'tac', 'tok']):
    print(i, v)
# 0 tic
# 1 tac
# 2 tok

 

 

# Unpacking the index and value in the list and saving it as a list
mylist = ['a', 'b', 'c', 'd']
print(list(enumerate(mylist)))    
# [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

 

 

# Make a sentence into a list, unpack the list index and value, and save it as a dict
print({i:j for i, j in enumerate("Cat is the cutiest animal in the world.".split())})
# {0: 'Cat', 1: 'is', 2: 'the', 3: 'cutiest', 4: 'animal', 5: 'in', 6: 'the', 7: 'world.'}

 

 

 

@zip

-두 개의 list값을 병렬적으로 추출

 

 

실습)

# for loop + zip
# Extract values in parallel
alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

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

 

 

# list comprehension + zip    
# same index of each tuple is grouped together
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)

# Combine the same index of each tuple and convert the sum to a list
print([sum(x) for x in zip((1, 2, 3), (10, 20, 30), (100, 200, 300))])
# [111, 222, 333]

 

 

# 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

 

 

 

'CS > Python' 카테고리의 다른 글

Asterisk  (0) 2021.01.11
Lambda & MapReduce  (0) 2021.01.11
List Comprehension  (0) 2021.01.10
Split & Join  (0) 2021.01.10
Pythonic Code  (0) 2021.01.07

Tiny Star