본문 바로가기
#개인연구 및 공부#/[python]

(2020.11.04)파이썬 300제 문제풀기 [No.081 - 090] - 딕셔너리

by 착한해커 2020. 11. 4.

파이썬 300제[No.081 - 090]

파이썬에서 딕셔너리는 key와 value 값으로 이루어져 있다. {key : value}, key를 호출하면 매핑되어 있는 value값을 호출한다. 순서는 정해져 있지 않으며 key로만 구분된다.

 

 

 

No.081 별 표현식

문제) 다음과 같이 10개의 값이 저장된 scores 리스트가 있을 때, start expression을 사용하여 좌측 8개의 값을 valid_score 변수에 바인딩하여라.

 

scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]

 

입력) 딕셔너리 파트에서 갑자기 별 표현식 문제가 나와서 당황스럽지만 일단 문제가 나왔으니 풀어보자

튜플을 언패킹할 때는 요소값 수와 입력받을 변수 값 수가 같아야 하지만 * 표현식을 활용하면 필요한 요소값만 패킹을 하고 나머지 값은 언패킹을 유지할 수 있다.

 

scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]
*valid_score, a, b= scores # scores 요소값을 a, b에 부여하지 않고 별 표현식을 활용하여 전부 valid_score 변수에 바인딩

print(valid_score)

 

출력)

[8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5] # 다수의 변수가 있었으나 valid_score함수에만 바인딩되었다

 

 

 

No.082 별 표현식

문제) 다음과 같이 10개의 값이 저장된 scores 리스트가 있을 때, start expression을 사용하여 우측 8개의 값을 valid_score 변수에 바인딩하여라.

scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]

 

입력) 왼쪽 변수의 순서대로 값이 입력되므로, valid_score에 우측 8개를 대입시키기 위해 변수 위치를 a, b, valid_socre 순으로 변수를 지정하고 * 표현식을 활용하여 valid_score에 우층 8개는 언패킹하여 바인딩 시키고 가장 좌측 2개 요소는 각각 a, b에 저장

scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]
a, b, *valid_score = scores # a, b 변수에 각각 1개 요소를 대입하고 나머지 값은 언패킹하여 valid_score에 바인딩

print(a, b, valid_score, sep="\n")

 

출력)

8.8
8.9
[8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]

 

 

 

 

No.083 별 표현식

문제) 다음과 같이 10개의 값이 저장된 scores 리스트가 있을 때, start expression을 사용하여 가운데 있는 8개의 값을 valid_score 변수에 바인딩하여라.

 

scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]

 

입력) 변수의 순서대로 요소 값이 저장 되므로 왼쪽에 변수 순서를 a1, valid_score, a2 로 지정하고 valid_score에 * 표현식을 설정하여 가운데 8개 값은 언패킹한다.

scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]
a1, *valid_score, a2  = scores # 변수 순서대로 요소값이 저장되므로 a1, valid_score, a2 변수 순서대로 지정한다.

print(a1, valid_score, a2, sep="  ")

 

출력)

8.8  [8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8]  9.4

 

 

 

 

No.084 비어있는 딕셔너리

문제) temp 이름의 비어있는 딕셔너리를 만들라.

 

입력) 딕셔너리는 {}로 묶어서 표현한다. {key : value} 구조이다. 문제에서는 비어있는 딕셔너리라고 했으므로

변수 = {} 로 지정하면 된다.

temp = {}

print(type(temp))

 

출력)

<class 'dict'>

 

 

 

 

No.085 딕셔너리 구성하기

문제) 다음 아이스크림 이름과 희망 가격을 딕셔너리로 구성하라.

 

     이름            희망 가격

메로나 1000
폴라포 1200
빵빠레 1800

 

입력) 이름을 key로, 희망가격을 value로 구성한다 {key : value} 구조이다.

ice_price = {"메로나" : 1000, "폴라포" : 1200, "빵빠레" : 1800}

print(ice_price)

 

출력)

{'메로나': 1000, '폴라포': 1200, '빵빠레': 1800}

 

 

 

No.086 딕셔너리 정보 추가

문제) 085 번의 딕셔너리에 아래 아이스크림 가격정보를 추가하라.

 

      이름          희망 가격

죠스바 1200
월드콘 1500

 

입력) 딕셔너리를 추가해줄 때 변수[key_name] = value 구조로 추가하면 된다.

ice_price = {"메로나" : 1000, "폴라포" : 1200, "빵빠레" : 1800}
ice_price["죠스바"] = 1200
ice_price["월드콘"] = 1500

print(ice_price)

 

출력)

{'메로나': 1000, '폴라포': 1200, '빵빠레': 1800, '죠스바': 1200, '월드콘': 1500}

 

 

 

 

No.087 딕셔너리 값 출력

문제) 다음 딕셔너리를 사용하여 메로나 가격을 출력하라.

 

ice = {'메로나': 1000,

       '폴로포': 1200,

       '빵빠레': 1800,

       '죠스바': 1200,

       '월드콘': 1500}

 

입력) 딕셔너리는 {key : value}의 구조이고 key와 value가 매핑되어 있으므로 메로나의 가격을 알고 싶다면 key인 메로나를 호출하면 된다. 호출 구문은 변수[key] 를 print() 로 감싸주면 된다.

ice = {'메로나': 1000,
       '폴로포': 1200,
       '빵빠레': 1800,
       '죠스바': 1200,
       '월드콘': 1500}

print(ice["메로나"])

 

출력)

1000

 

 

 

No.088 딕셔너리 value 변경

문제) 다음 딕셔너리에서 메로나의 가격을 1300으로 수정하라.

ice = {'메로나': 1000,

       '폴로포': 1200,

       '빵빠레': 1800,

       '죠스바': 1200,

       '월드콘': 1500}

 

입력) 딕셔너리의 특정 key의 value를 변경하고 싶다면 변수[key] = 변경할 값  으로 입력하면 된다.

ice = {'메로나': 1000,
       '폴로포': 1200,
       '빵빠레': 1800,
       '죠스바': 1200,
       '월드콘': 1500}

ice["메로나"] = 1300

print(ice, ice["메로나"], sep="\n")

 

출력)

{'메로나': 1300, '폴로포': 1200, '빵빠레': 1800, '죠스바': 1200, '월드콘': 1500}
1300

 

 

 

No.089 딕셔너리 특정 데이터 삭제하기

문제) 다음 딕셔너리에서 메로나를 삭제하라.

ice = {'메로나': 1000,

       '폴로포': 1200,

       '빵빠레': 1800,

       '죠스바': 1200,

       '월드콘': 1500}

 

입력) del 명령어를 사용한다. 포맷은 del 변수명[key] 이다.

ice = {'메로나': 1000,
       '폴로포': 1200,
       '빵빠레': 1800,
       '죠스바': 1200,
       '월드콘': 1500}

del ice["메로나"]

print(ice)

 

출력)

{'폴로포': 1200, '빵빠레': 1800, '죠스바': 1200, '월드콘': 1500}

 

 

 

No.090 딕셔너리에 존재하지 않는 key 호출할 때 현상

문제) 다음 코드에서 에러가 발생한 원인을 설명하라.

icecream = {'폴라포'1200'빵빠레'1800'월드콘'1500'메로나'1000}

icecream['누가바']

Traceback (most recent call last):

  File "<pyshell#69>", line 1in <module>

    icecream['누가바']

KeyError'누가바'

 

 

입력) 누가바는 딕셔너리에 존재하지 않는 key 이므로 발생된 에러이다.

icecream = {'폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
icecream['누가바']

 

출력)

Traceback (most recent call last):
  File "e:\STUDY\programming\python\output.py", line 2, in <module>
    icecream['누가바']
KeyError: '누가바'

 

댓글