[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(091~100)_12.15
안녕하세요. Harry입니다.
현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.
모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.
초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/
[학습목표]
1. 각 문제별 요구하는 역량(출제의도)이 무엇인지 파악할 수 있다.
2. 각 문제별 요구하는 기술 및 기능을 활용하여 문제를 해결할 수 있다.
091 ~ 100
091 딕셔너리 생성
아래의 표에서, 아이스크림 이름을 키값으로, (가격, 재고) 리스트를 딕셔너리의 값으로 저장하라. 딕셔너리의 이름은 inventory로 한다.
이름 | 가격 | 재고 |
메로나 | 300 | 20 |
비비빅 | 400 | 3 |
죠스바 | 250 | 100 |
inventory = {'메로나':[300,20], '비비빅':[400,3], '죠스바':[250,100]}
print(inventory)
092 딕셔너리 인덱싱
inventory 딕셔너리에서 메로나의 가격을 화면에 출력하라.
- 요구역량 : 키값을 이용하여 리스트 내 일부 요소만 출력할 수 있는가?
- value 리스트의 일부 요소만 출력하기 위해선, key값, 출력하고자 하는 리스트 요소의 인덱스 값을 알아야 한다.
딕셔너리명[key값][인덱스값] 으로 표현한다.
inventory = {"메로나": [300, 20],
"비비빅": [400, 3],
"죠스바": [250, 100]}
실행 예시:
300 원
inventory = {"메로나": [300, 20],
"비비빅": [400, 3],
"죠스바": [250, 100]}
print(inventory["메로나"][0], "원")
093 딕셔너리 인덱싱
inventory 딕셔너리에서 메로나의 재고를 화면에 출력하라.
- 요구역량 : 키값을 이용하여 리스트 내 일부 요소만 출력할 수 있는가?
inventory = {"메로나": [300, 20],
"비비빅": [400, 3],
"죠스바": [250, 100]}
실행 예시:
20 개
inventory = {"메로나": [300, 20],
"비비빅": [400, 3],
"죠스바": [250, 100]}
print(inventory["메로나"][1], "개")
094 딕셔너리 추가
inventory 딕셔너리에 아래 데이터를 추가하라.
- 요구역량 : 딕셔너리에 신규 key:value를 추가하여 출력할 수 있는가?
inventory = {"메로나": [300, 20],
"비비빅": [400, 3],
"죠스바": [250, 100]}
이름 | 가격 | 재고 |
월드콘 | 500 | 7 |
실행 예시:
>> print(inventory)
{'메로나': [300, 20], '비비빅': [400, 3], '죠스바': [250, 100], '월드콘': [500, 7]}
inventory = {"메로나": [300, 20],
"비비빅": [400, 3],
"죠스바": [250, 100]}
inventory["월드콘"] = [500,7]
print(inventory)
095 딕셔너리 keys() 메서드
다음의 딕셔너리로부터 key 값으로만 구성된 리스트를 생성하라.
- 요구역량 : 딕셔너리에서 key값만 추출 후, 리스트로 변경하여 출력할 수 있는가?
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
a = list(icecream.keys())
print(a)
096 딕셔너리 values() 메서드
다음의 딕셔너리에서 values 값으로만 구성된 리스트를 생성하라.
- 요구역량 : 딕셔너리에서 value값만 추출 후, 리스트로 변경하여 출력할 수 있는가?
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
정답확인icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
a = list(icecream.values())
print(a)
097 딕셔너리 values() 메서드
icecream 딕셔너리에서 아이스크림 판매 금액의 총합을 출력하라.
- 딕셔너리 내 value의 합을 출력할 수 있는가?
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
출력 예시:
6700
#리스트로 변환하여 합계 출력
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
a = list(icecream.values())
print(sum(a))
#답지
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
print(sum(icecream.values()))
098 딕셔너리 update 메서드
아래의 new_product 딕셔너리를 다음 icecream 딕셔너리에 추가하라.
- 요구역량 : update 메서드를 활용하여 두 딕셔너리를 합칠 수 있는가?
기존 딕셔너리.update(추가할 딕셔너리)로 표현하면 됩니다.(몰랐던 부분)
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
new_product = {'팥빙수':2700, '아맛나':1000}
실행 예시:
>> print(icecream)
{'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000, '팥빙수':2700, '아맛나':1000}
정답확인icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
new_product = {'팥빙수':2700, '아맛나':1000}
icecream.update(new_product)
print(icecream)
099 zip과 dict
아래 두 개의 튜플을 하나의 딕셔너리로 변환하라. keys를 키로, vals를 값으로 result 이름의 딕셔너리로 저장한다.
- 요구역량 : zip 메서드를 활용하여 타 요소를 딕셔너리 내 요소로 배치하여 출력할 수 있는가?
zip 쓸 줄 몰라서 일일이 매핑했는데, 이건 양이 많아지면 사용할 수 없는 방법입니다.
zip(key에 쓸 튜플, value에 쓸 튜플)로 작성하면 알아서 순서에 맞게 1:1 매핑으로 출력됩니다.
keys = ("apple", "pear", "peach")
vals = (300, 250, 400)
실행 예시:
>> print(result)
{'apple': 300, 'pear': 250, 'peach': 400}
정답확인keys = ("apple", "pear", "peach")
vals = (300, 250, 400)
result = {keys[0]:vals[0],keys[1]:vals[1], keys[2]:vals[2]}
print(result)
#답지
keys = ("apple", "pear", "peach")
vals = (300, 250, 400)
result = dict(zip(keys, vals))
print(result)
100 zip과 dict
date와 close_price 두 개의 리스트를 close_table 이름의 딕셔너리로 생성하라.
- 요구역량 : zip 메서드를 활용하여 타 요소를 딕셔너리 내 요소로 배치하여 출력할 수 있는가?
date = ['09/05', '09/06', '09/07', '09/08', '09/09']
close_price = [10500, 10300, 10100, 10800, 11000]
실행 예시:
>> print(close_table)
{'09/05': 10500, '09/06': 10300, '09/07': 10100, '09/08': 10800, '09/09': 11000}
date = ['09/05', '09/06', '09/07', '09/08', '09/09']
close_price = [10500, 10300, 10100, 10800, 11000]
close_table = dict(zip(date, close_price))
print(close_table)
감사합니다.