파이썬 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 1, in <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: '누가바'
'#개인연구 및 공부# > [python]' 카테고리의 다른 글
(2020.11.06)파이썬 300제 문제풀기 [No.101 - 110] - 분기문 (0) | 2020.11.06 |
---|---|
(2020.11.05)파이썬 300제 문제풀기 [No.091 - 100] - 딕셔너리2 (0) | 2020.11.05 |
(2020.11.03)파이썬 300제 문제풀기 [No.071 - 080] - 튜플 (0) | 2020.11.03 |
(2020.11.02)파이썬 300제 문제풀기 [No.061 - 070] - 리스트 2 (0) | 2020.11.02 |
(2020.11.01)파이썬 300제 문제풀기 [No.051 - 060] - 리스트 1 (0) | 2020.11.01 |
댓글