python / 사전(del,clear,keys, values,items,sorted,in)
122 사전의 특정 요소 제거하기(del)
딕셔너리에서 특정 요소(값)을 제거하려면 파이썬 내장함수 del을 이용하면 됨.
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
del sol['태양']
print(sol) #{'수성': 'mercury', '금성': 'venuse', '지구': 'earth'}
문제383. 아래의 딕셔너리에서 다시만난세계의 값만 지우시오.
dict = {'소녀시대':['다시만난세계','Gee'],'방탄소년단':['DNA','Fire']}
del dict['소녀시대'][0]
print(dict) #{'소녀시대': ['Gee'], '방탄소년단': ['DNA', 'Fire']}
문제384. 아래의 music 딕셔너리에서 가수별로 맨 끝에 추가된 음악만 지우시오.
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
for i in music_dict:
del music_dict[i][-1]
print(music_dict) #{'비틀즈': ['yesterday'], '아이유': ['너랑나'], '마이클 잭슨': ['beat it']}
123 사전의 모든 요소 제거하기(clear)
딕셔너리.clear() : 딕셔너리의 모든 요소 제거(clear)
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
music_dict.clear()
print(music_dict) # {}
124 사전에서 키만 추출하기(keys)
딕셔너리에서 key만 추출하고 싶다면 딕셔너리.keys()를 사용하면 됨.
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
print(sol.keys()) # dict_keys(['태양', '수성', '금성', '지구'])
문제385. 위의 sol 딕셔너리의 데이터를 뽑아서 아래와 같이 결과를 출력하시오.
태양,수성,금성,지구
# rstrip 사용
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
result = ''
for i in sol:
result += i + ','
print(result.rstrip(','))
# join 사용
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
result = []
for i in sol:
result.append(i)
print(','.join(result))
125 사전에서 값만 추출하기(values)
# 키마다 값이 한 개인 경우
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
print(sol.values())
#dict_values(['sun', 'mercury', 'venuse', 'earth'])
# 키마다 값이 여러개인 경우
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
print(music_dict.values())
#dict_values([['yesterday', 'imagine'], ['너랑나', '마쉬멜로우'], ['beat it', 'smoth criminal']])
문제386. for i in music_dict.values()를 이용해서 아래와 같이 출력되게 하세요.
['yesterday', 'imagine']
['너랑나', '마쉬멜로우']
['beat it', 'smoth criminal']
['yesterday', 'imagine']
['너랑나', '마쉬멜로우']
['beat it', 'smoth criminal']
for i in range(2):
for k in music_dict.values():
print(k)
문제387. (카카오 입사문제) 위의 결과를 다시 출력하는데 아티스트들의 노래가 겹치지 않게 출력하시오.
yesterday,너랑나,beat it,imagine,마쉬멜로우,smoth criminal
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
result = ''
for i in range(2):
for k in music_dict.values():
result += k [i] +','
print(result.rstrip(','))
리스트의 요소 갯수를 모를 경우
# music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우'], '마이클 잭슨': ['beat it', 'smoth criminal']}
# length = []
# for i in music_dict.values():
# length.append(len(i))
# max(length)
126 사전 요소를 모두 추출하기(items)
딕셔너리.items() : 딕셔너리의 요소 모두 추출
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
for i in sol.items():
print(i)
# ('태양', 'sun')
# ('수성', 'mercury')
# ('금성', 'venuse')
# ('지구', 'earth')
문제388. 위의 결과에서 아래의 결과만 출력하시오.
태양
수성
금성
지구
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
for i in sol.items():
print(i[0])
127 사전 정렬하기(sorted)
파이썬 내장함수 sorted()는 딕셔너리의 키를 오름차순으로 정렬한 결과를 리스트로 반환.
dict2 = {'소녀시대': '소원을 말해봐','방탄소년단':'다이너마이트','오마이걸':'살짝 설랬어'}
# dict2에서 키만 추출하시오.
print(dict2.keys()) # dict_keys(['소녀시대', '방탄소년단', '오마이걸'])
# 위의 결과를 정렬해서 출력하려면?
a = dict2.keys()
print(sorted(a)) # ['방탄소년단', '소녀시대', '오마이걸']
# 딕셔너리 자체를 sorted로 감싸서 출력하면 바로 "키"의 정렬된 결과를 리스트로 반환
sorted(dict2) # ['방탄소년단', '소녀시대', '오마이걸']
문제389. 아래의 sol 딕셔너리에서 값들을 정렬해 리스트로 반환하시오.
['earth', 'mercury', 'sun', 'venuse']
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
a = sol.values()
sorted(a)
128 사전에 특정 키가 존재하는지 확인하기(in)
키값 in 딕셔너리 : 딕셔너리에 특정 키가 존재하는지 확인
sol = {'태양':'sun','수성':'mercury','금성':'venuse','지구':'earth'}
if '지구' in sol:
print('지구가 존재합니다.')
else:
print('존재하지 않습니다.')
문제390. (점심시간 문제) 아래의 coffee_dict 딕셔너리를 가지고 아래의 함수를 실행하시오.
coffee_dict = {'아메리카노':1500,'카페라떼':'2500','카페모카':3500,'녹차라떼':3500}
def coffee_menu():
menu = input('원하는 메뉴를 입력하세요~ ')
if menu in coffee_dict:
return "%s는 메뉴에 있습니다."%menu
else:
return "%s는 메뉴에 없습니다."%menu
print(coffee_menu())
ㅇ 딕셔너리의 기능
1. 딕셔너리를 구성하는 방법(값이 한개일때, 값이 여러개 일때)
2. 딕셔너리[번호] = 값 : 딕셔너리의 값을 변경하는 방법
3. del 딕셔너리[번호] : 파이썬 내장함수로 딕셔너리의 값을 제거할때 사용
4. 딕셔너리.clear() : 딕셔너리의 모든 요소 제거
5. 딕셔너리.keys() : 딕셔너리에서 키만 추출
6. 딕셔너리.values() : 딕셔너리에서 값만 추출
7. 딕셔너리.items() : 딕셔너리의 요소 모두 추출
8. sorted(딕셔너리) : 딕셔너리의 요소를 정렬
9. 키값 in 딕셔너리 : 딕셔너리에 특정 키가 존재하는지 확인
몰입해야할 문제. 사전의 값 리스트 갯수가 다를때
music_dict = {'비틀즈': ['yesterday', 'imagine'],
'마이클 잭슨': ['beat it', 'smooth criminal'], '아이유': ['너랑나', '마시멜로','좋은날']} |
music_dict = {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마쉬멜로우','좋은날'], '마이클 잭슨': ['beat it', 'smoth criminal']}
length = []
for i in music_dict.values():
length.append(len(i)) # 딕셔너리 값 리스트에 포함됨 요소의 갯수를 구함
result = ''
for i in range(max(length)): # 위에서 구한 값 리스트 요소의 갯수 중 가장 큰 값을 대입
for k in music_dict.values():
try:
result += k[i]+', '
except: # 인덱스가 없는 값은 continue로 넘김
continue
print(result.rstrip(', '))