120 사전에 요소 추가하기
ㅇ파이썬의 자료형 5가지 : 문자형, 숫자형, 리스트형, 튜플형, 사전형
사전형은 키:값으로 되어진 요소로 구성되어 있음. 사전형은 리스트형처럼 인덱스 번호로 요소를 접근하는게 아니라 키값으로 요소의 값에 접근
문제376. 아래의 2개의 리스트를 가지고 sol 딕셔너리를 생성하시오.
sol_eng = ['sun','mercury','venus','earth','mars'] # 키
sol_kor = ['태양','수성','금성','지구','화성'] # 값
sol = {} # 비어있는 딕셔너리 생성
for i, k in zip(sol_eng, sol_kor):
sol[i] = k # sol[키] = 값
print(sol)
# {'sun': '태양', 'mercury': '수성', 'venus': '금성', 'earth': '지구', 'mars': '화성'}
zip을 이용하면 리스트를 여러개를 for문으로 요소들을 한꺼번에 불러올 수 있음. 다만, 리스트 안의 요소의 갯수들이 모두 동일해야함.
# 문법
# for i, k, j in zip(리스트1, 리스트2, 리스트3):
# print(i,k,j)
문제377. 아래의 리스트를 coffee_dict라는 딕셔너리로 구성하시오.
{'아메리카노': 1500, '카페라떼': 2500, '카페모카': 3500, '녹차라떼': 3500}
c_type = ['아메리카노','카페라떼','카페모카','녹차라떼']
c_price = [1500,2500,3500,3500]
coffee_dict = {}
for i, k in zip(c_type, c_price):
coffee_dict[i] = k
print(coffee_dict)
위의 딕셔너리는 키도 하나, 값도 하나인 경우의 딕셔너리이고,
키는 하나이고 값은 여러개인 경우는 아래와 같음.
우선, 키 하나에 값이 여러개가 append 되게끔 구성해주려면 default dictionary를 알아야 함.
default dictionary 란, 일반 딕셔너리는 딕셔너리를 생성할 때 키만 있고 값이 없으면 딕셔너리가 생성되지 않음. 하지만 default dictionnary는 키만 있고 값이 없어도 생성 됨. 값은 나중에 append 시키면 됨.
# 1
from collections import defaultdict
gini = defaultdict(list) #gini 디폴트 딕셔너리를 만드는데 값을 list로 담을 수 있게 만듦.
gini['비틀즈'] # 이처럼 빈 값을 가진 키를 생성시킬 수 있음.
print(gini)
# 2
from collections import defaultdict
gini = defaultdict(list) #gini 디폴트 딕셔너리를 만드는데 값을 list로 담을 수 있게 만듦
gini['비틀즈'].append('yesterday') # append 시키면 됨
print(gini) # defaultdict(<class 'list'>, {'비틀즈': ['yesterday']})
문제378. for문과 zip을 이용해서 한번에 사전에 넣으시오.
artist = ['비틀즈', '비틀즈','아이유','아이유','마이클 잭슨','마이클 잭슨']
music = ['yesterday', 'imagine','너랑나', '마쉬멜로우','beat it','smoth criminal']
from collections import defaultdict
gini = defaultdict(list)
for i,k in zip(artist, music):
gini[i].append(k)
print(gini)
# {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']})
# set을 사용한 경우
artist = ['비틀즈', '비틀즈','아이유','아이유','마이클 잭슨','마이클 잭슨']
music = ['yesterday', 'imagine','너랑나', '마쉬멜로우','beat it','smoth criminal']
gini = {}
for i in set(artist): #set을 사용하면 중복제거 되기 때문에 for문이 조금 덜 돔.
gini[i] = []
print(gini)
딕셔너리에 값이 여러개 들어갈때는 리스트 형식으로 담김.
121 사전의 특정 요소값 변경하기
사전형 변수에 특정 요소값을 변경하는 방법은 다음과 같음.
1. 키 하나에 값 하나로 구성된 딕셔너리의 요소값 변경방법
# 사전형이름['키'] = '값'
coffee_dict = {'아메리카노': 1500, '카페라떼': 2500, '카페모카': 3500, '녹차라떼': 3500}
coffee_dict['녹차라떼'] = 4000
coffee_dict
# {'아메리카노': 1500, '카페라떼': 2500, '카페모카': 3500, '녹차라떼': 4000}
2. 키 하나에 값 여러개인 딕셔너리의 요소값 변경방법
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
music_dict['비틀즈'][0] = 'let it be'
music_dict
# {'비틀즈': ['let it be', 'imagine'],
# '아이유': ['너랑나', '마쉬멜로우'],
# '마이클 잭슨': ['beat it', 'smoth criminal']}
문제379. 아래의 music 리스트의 요소값을 하나씩 출력하시오.
music = ['yesterday', 'imagine','너랑나', '마쉬멜로우','beat it','smoth criminal']
music = ['yesterday', 'imagine','너랑나', '마쉬멜로우','beat it','smoth criminal']
for i in music:
print(i)
문제380. 위의 결과를 아래와 같이 출력하시오.
music = ['yesterday', 'imagine','너랑나', '마쉬멜로우','beat it','smoth criminal']
for i in music:
print(i, end=', ') # print함수의 end옵션을 이용해서 콤마(,)로 구분, 가로 출력
# yesterday, imagine, 너랑나, 마쉬멜로우, beat it, smoth criminal,
문제381. 위에서 완성했던 music_dict 딕셔너리에서 음악을 하나씩 뽑아내서 아래의 결과를 출력하시오.
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
for i in music_dict:
for k in range(2):
print(music_dict[i][k], end = ', ')
# values() 사용한 방법
for i in music_dict.values():
for k in i:
print(k, end=', ')
문제382. (오늘의 마지막 문제) 위의 결과에서 맨 끝에 나오는 콤마()를 제거해서 출력하시오.
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
result = ''
for i in music_dict.values():
for k in i:
result += k +','
print(result.rstrip(','))
'Study > class note' 카테고리의 다른 글
python / 사전(del,clear,keys, values,items,sorted,in) (0) | 2021.12.29 |
---|---|
기업체 특강 /에이플랫폼 (0) | 2021.12.28 |
python / 리스트(del, sort(ed), shuffle, enumerate, sum, all,any) (0) | 2021.12.28 |
커피 키오스크 오늘의 추천메뉴 + 메뉴안내 (0) | 2021.12.28 |
python / 커피키오스크 data add함수 따로 뺀 코드 (0) | 2021.12.28 |