Coding Test/초보자를 위한 파이썬 300제

[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(091~100)_12.15

Klay_J 2022. 12. 15. 21:24

안녕하세요. Harry입니다.

 

현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.

모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.

 

초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/

https://wikidocs.net/book/922

[학습목표]

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)

감사합니다.