Coolog 🖥️

/

[Python] 리스트를 딕셔너리로 변환하기(zip)


💫 리스트를 딕셔너리로 변환하는 방법

name = ["may", "kein"]
age = [17, 19]
  1. for 루프 방식
dic = {}
for i in range(len(name)):
    dic[name[i]] = age[i]
  1. dict comprehension
dic = {n: y for n, y in zip(name, age)}
  1. dict(zip(...))
dic = dict(zip(name, age))

💫 dict(zip(...)) 함수란?

  • 파이썬에서 여러 시퀀스(리스트, 튜플 등)를 묶어주는 함수
  • 같은 인덱스끼리 묶어서 튜플로 반환
  • 길이가 다르면 짧은 쪽 기준으로 묶임
zip(iterable1, iterable2, ...)

💫 dict(zip(...)) 활용

  1. 두 리스트 묶기
z = zip(name, age)
print(list(z)) #[('may', 17), ('kein', 19)]
  1. 딕셔너리 만들기
dic = dict(zip(name, age))
print(dic) #{'may': 17, 'kein': 19}
  1. 3개 이상
a = [1, 2, 3]
b = ["one", "two", "three"]
c = ["하나", "둘", "셋"]

print(list(zip(a, b, c))) #[(1, 'one', '하나'), (2, 'two', '둘'), (3, 'three', '셋')]

💫 zip(*) 언패킹

pairs = [('may', 17), ('kein', 19)]
name, age = zip(*pairs)

print(name)   # ('may', 'kein')
print(age)  # (17, 19)

💫 정리

  • 데이터가 많을수록 dict(zip(...)) 방식이 가장 빠름
  • 가독성과 파이썬스러운 코드 → dict comprehension

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최근 게시물