Notice
Recent Posts
Recent Comments
Link
관리 메뉴

왕초보 코딩 개발 일지 블로그

06. 파이썬 딕셔너리 (091 ~ 100) 본문

Python 공부/파이썬 300제 풀이 연습

06. 파이썬 딕셔너리 (091 ~ 100)

아캔두우잇 2023. 4. 12. 16:52
반응형

출처 : https://wikidocs.net/78563

 

091 ~ 100

.answer {margin-top: 10px;margin-bottom: 50px;padding-top: 10px;border-top: 3px solid LightGray;bo…

wikidocs.net

091 딕셔너리 생성

아래의 표에서, 아이스크림 이름을 키값으로, (가격, 재고) 리스트를 딕셔너리의 값으로 저장하라. 딕셔너리의 이름은 inventory로 한다.

이름 가격 재고
메로나 300 20
비비빅 400 3
죠스바 250 100
inventory = {"메로나" : [300, 20], 
             "비비빅" : [400, 3], 
             "죠스바" : [250, 100]}

inventory
{'메로나': [300, 20], '비비빅': [400, 3], '죠스바': [250, 100]}

 

092 딕셔너리 인덱싱

inventory 딕셔너리에서 메로나의 가격을 화면에 출력하라.

inventory = {"메로나": [300, 20],
              "비비빅": [400, 3],
              "죠스바": [250, 100]}
실행 예시:
300 원
inventory = {"메로나" : [300, 20], 
             "비비빅" : [400, 3], 
             "죠스바" : [250, 100]}

print(inventory["메로나"][0], "원")
300 원

 

093 딕셔너리 인덱싱

inventory 딕셔너리에서 메로나의 재고를 화면에 출력하라.

inventory = {"메로나": [300, 20],
              "비비빅": [400, 3],
              "죠스바": [250, 100]}
실행 예시:
20 개
inventory = {"메로나" : [300, 20], 
             "비비빅" : [400, 3], 
             "죠스바" : [250, 100]}

print(inventory["메로나"][1], "개")
20 개

 

094 딕셔너리 추가

inventory 딕셔너리에 아래 데이터를 추가하라.

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]
inventory
{'메로나': [300, 20], '비비빅': [400, 3], '죠스바': [250, 100], '월드콘': [500, 7]}

 

095 딕셔너리 keys() 메서드

다음의 딕셔너리로부터 key 값으로만 구성된 리스트를 생성하라.

icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
icecream = {'탱크보이': 1200, 
            '폴라포': 1200, 
            '빵빠레': 1800, 
            '월드콘': 1500, 
            '메로나': 1000}

ice = list(icecream.keys())
ice
['탱크보이', '폴라포', '빵빠레', '월드콘', '메로나']

 

096 딕셔너리 values() 메서드

다음의 딕셔너리에서 values 값으로만 구성된 리스트를 생성하라.

icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
icecream = {'탱크보이': 1200, 
            '폴라포': 1200, 
            '빵빠레': 1800, 
            '월드콘': 1500, 
            '메로나': 1000}

price = list(icecream.values())
price

 

097 딕셔너리 values() 메서드

icecream 딕셔너리에서 아이스크림 판매 금액의 총합을 출력하라.

icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
출력 예시:
6700
icecream = {'탱크보이': 1200, 
            '폴라포': 1200, 
            '빵빠레': 1800, 
            '월드콘': 1500, 
            '메로나': 1000}

sum(icecream.values())
6700

 

098 딕셔너리 update 메서드

아래의 new_product 딕셔너리를 다음 icecream 딕셔너리에 추가하라.

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)
{'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000, '팥빙수': 2700, '아맛나': 1000}

 

099 zip과 dict

아래 두 개의 튜플을 하나의 딕셔너리로 변환하라. keys를 키로, vals를 값으로 result 이름의 딕셔너리로 저장한다.

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]}
result

 

<다른 풀이>

keys = ("apple", "pear", "peach")
vals = (300, 250, 400)
result = dict(zip(keys, vals))
print(result)

 

해당 코드는 파이썬에서 dictionary(딕셔너리)를 만드는 방법 중 하나인 dict() 함수와 zip() 함수를 이용하여 keys와 vals 두 개의 tuple을 이용해 딕셔너리를 만드는 방법을 보여줍니다.

우선, keys tuple에는 문자열 값인 "apple", "pear", "peach"가, vals tuple에는 정수 값인 300, 250, 400이 저장됩니다.

그리고 zip() 함수는 두 개의 iterable(반복 가능한 객체)을 인자로 받아 두 iterable에서 '같은 인덱스에 위치한 원소'들을 묶어 튜플로 반환해주는 함수입니다. 이 경우에는 keys와 vals 두 개의 tuple이 인자로 들어가서 각 원소끼리 튜플로 묶어줍니다.

최종적으로 dict() 함수는 이렇게 만들어진 키와 값이 묶인 튜플들의 iterable 객체인 zip 객체를 인자로 받아 딕셔너리 객체를 만듭니다.

그리고 print() 함수를 이용하여 딕셔너리 객체 result를 출력하면 아래와 같이 딕셔너리 객체가 출력됩니다.

 

 

 

* dict() 함수

파이썬에서 dict() 함수는 딕셔너리 객체를 생성하는 내장 함수입니다. dict() 함수는 다음과 같은 여러 가지 방법으로 사용할 수 있습니다.

1. 빈 딕셔너리 객체 생성
dict() 함수에 아무런 인자도 전달하지 않으면 빈 딕셔너리 객체를 생성합니다.

empty_dict = dict()

2. 키-값 쌍으로 딕셔너리 생성
dict() 함수에 키-값 쌍으로 이루어진 리스트나 튜플 등의 iterable 객체를 전달하면, 해당 객체를 이용하여 딕셔너리를 생성합니다.

pairs = [("a", 1), ("b", 2), ("c", 3)]
my_dict = dict(pairs)
print(my_dict)  # {'a': 1, 'b': 2, 'c': 3}

3. 키워드 인자를 이용한 딕셔너리 생성
dict() 함수에 키워드 인자를 이용하여 딕셔너리를 생성할 수 있습니다. 이 때 인자의 이름이 키(key)가 되고, 해당 인자의 값이 값(value)이 됩니다.

my_dict = dict(name="John", age=25, city="Seoul")
print(my_dict)  # {'name': 'John', 'age': 25, 'city': 'Seoul'}

 

* 인자(argument)

인자(argument)는 함수를 호출할 때 함수에 전달되는 값입니다. 함수가 정의될 때 인자를 받을 수 있도록 매개변수(parameter)를 선언해 놓아야 합니다.

예를 들어, 아래의 함수 add는 두 개의 인자를 받아 더한 값을 반환합니다. 함수를 정의할 때 매개변수 a와 b를 선언했습니다.

def add(a, b):
    return a + b

따라서, 이 함수를 호출할 때는 add(2, 3)과 같이 인자를 전달해야 합니다. 이때 2와 3은 함수 add의 인자이며, a와 b에 각각 대입되어 더해진 결과인 5가 반환됩니다.

 

100 zip과 dict

date와 close_price 두 개의 리스트를 close_table 이름의 딕셔너리로 생성하라.

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)
{'09/05': 10500, '09/06': 10300, '09/07': 10100, '09/08': 10800, '09/09': 11000}
반응형