본문 바로가기
DEV/파이썬 이론

파이썬 코딩 :: zip 내장함수 사용하기

by 올커 2022. 9. 22.

 

파이썬 zip 내장함수로 데이터쌍 만들기


 파이썬에서 zip()내장함수를 사용하면 손쉽게 데이터 쌍을 만들 수 있다.

1. zip()

 - zip()은 두 개의 데이터를 쌍으로 묶어주는 역할을 한다.

# ex. 1 리스트 쌍 추출
num_1 = [1, 2, 3]
str_1 = ["A", "B", "C"]
for x in zip(num_1, str_1):
     print(x)

(1, 'A')
(2, 'B')
(3, 'C')

 - 이 때 유의할 점은 두 개의 리스트를 쌍으로 병합할 경우, 길이가 달라서는 안된다. 자료의 길이가 다를 경우, 긴 쪽의 나머지 요소들은 입력되지 않는다.

# ex. 2 자료의 길이가 다를 경우
num_1 = ["1", "2", "3"]
str_1 = ["A"]
list(zip(num_1, str_1))

# 결과
[('1', 'A')]

 

 - zip()함수를 사용하면 두 개의 리스트를 손쉽게 딕셔너리로 변환이 가능하다.

# ex.1 zip 사용하기
ks = [1, 2, 3]
vs = ["A", "B", "C"]
dic_a = dict(zip(ks, vs))

print(dic_a)

# 결과
{1: 'A', 2: 'B', 3: 'C'}

 - 이를 응용하면, 각각을 입력받아 딕셔너리를 만들 수도 있다. (※ 참고. 파이썬 코딩도장 심사문제 12.5)

# ex. 2 zip() 활용하여 입력받기
dic_ak = {k for k in input().split()}
dic_av = {v for v in input().split()}
dic_a = dict(zip(dic_ak, dic_av))
print(dic_a)


# 결과
health health_regen mana mana_regen			# 사용자 입력
573.6 308.8 600 0.625 35.7					# 사용자 입력
{'mana': '600', 'health': '308.8', 'mana_regen': '573.6', 'health_regen': '35.7'}
반응형

댓글