파이썬 배우기
[파이썬] zip 함수로 리스트 짝지어주기
차근차근 디지털
2023. 11. 16. 15:14
for문을 활용하여 과목 리스트와 점수 리스트를 합쳐서 하나의 과목별 점수 dict을 만들어보려고 합니다.
정말 다양한 방법이 있겠지만 기본적인 방법과 zip 함수를 활용한 방법 두 가지를 소개해보겠습니다.
(참고로 가장 적은 인자를 갖는 리스트를 기준으로 만들어지고 나머지는 버려지게 됩니다. 합치기 전에 len을 확인해보는 것을 추천합니다!)
1. 아주 기본적인, 정석적인 방법 : for문으로 짝지어서 넣기
subjects = ['국어','수학','영어']
scores = [70,100,90]
dict_score = {}
for idx in range(len(subjects)): #subjects와 scores의 인자 갯수가 같기 때문에 어떤 것을 써도 상관없음
dict_score[subjects[idx]] = scores[idx]
dict_score
# output : {'국어': 70, '수학': 100, '영어': 90}
2. zip 사용하기 - 기본
subjects = ['국어','수학','영어']
scores = [70,100,90]
dict_score = dict(zip(subjects, scores))
dict_score
# output : {'국어': 70, '수학': 100, '영어': 90}
(참고) 세 개 이상의 리스트도 짝지어서 하나로 만들 수 있습니다.
subjects = ['국어','수학','영어']
scores = [70,100,90]
grades = ['C','A','B']
lst_score = list(zip(subjects, scores, grades))
lst_score
# output : [('국어', 70, 'C'), ('수학', 100, 'A'), ('영어', 90, 'B')]
(참고) zip 사용하기 - 다른 방법 1
subjects = ['국어','수학','영어']
scores = [70,100,90]
dict_score = {}
for subject, score in zip(subjects, scores):
dict_score[subject] = score
dict_score
# output : {'국어': 70, '수학': 100, '영어': 90}
(참고) zip 사용하기 - 다른 방법 2
subjects = ['국어','수학','영어']
scores = [70,100,90]
dict_score = {subject:score for subject, score in zip(subjects, scores)}
dict_score
# output : {'국어': 70, '수학': 100, '영어': 90}