💫 리스트를 딕셔너리로 변환하는 방법
name = ["may", "kein"]
age = [17, 19]
for 루프 방식
dic = {}
for i in range(len(name)):
dic[name[i]] = age[i]
dict comprehension
dic = {n: y for n, y in zip(name, age)}
dict(zip(...))
dic = dict(zip(name, age))
💫 dict(zip(...)) 함수란?
- 파이썬에서 여러 시퀀스(리스트, 튜플 등)를 묶어주는 함수
- 같은 인덱스끼리 묶어서 튜플로 반환
- 길이가 다르면 짧은 쪽 기준으로 묶임
zip(iterable1, iterable2, ...)
💫 dict(zip(...)) 활용
- 두 리스트 묶기
z = zip(name, age)
print(list(z)) #[('may', 17), ('kein', 19)]
- 딕셔너리 만들기
dic = dict(zip(name, age))
print(dic) #{'may': 17, 'kein': 19}
- 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
답글 남기기