Словники та методи словників
Словники є, мабуть, найбільш універсальною структурою даних у Python. Вони зберігають дані у вигляді пар ключ-значення та є незамінними у випадках, коли дані потрібно швидко отримувати і часто змінювати.
У нашому сценарії з продуктовим магазином словники можуть ефективно зберігати інформацію про постачальників, дозволяючи отримувати доступ до кожного постачальника за його ім'ям або ідентифікатором без необхідності шукати у списку.
Перегляньте, як Олексій демонструє використання словників для нашого магазину:
Створення
Словники створюються шляхом розміщення пар ключ-значення, розділених комами, у фігурних дужках {}
.
python
Порядок
Словники зберігають порядок додавання своїх елементів, хоча важливо зазначити, що операції зазвичай виконуються за ключами, а не за позицією.
Змінність
Словники є змінними, що дозволяє додавати, оновлювати або видаляти пари ключ-значення після створення словника;
Примітка
Хоча у словниках можуть бути різні значення, кожен ключ має бути унікальним у межах одного словника. Якщо ключ повторюється під час присвоєння, останнє значення перезапише попереднє, гарантуючи, що кожен ключ має лише одне відповідне значення.
Приклади
Розглянемо простий словник. Замість використання індексних номерів, елементи словника отримують через їх ключі, які в цьому випадку є назвами продуктів.
# Dictionary creation groceryItems = { "Milk": 3.49, "Eggs": 2.99, "Bread": 1.99, "Apples": 0.99 } # Extracting dictionary elements by their keys print("Price of Milk:", groceryItems["Milk"]) print("Price of Bread:", groceryItems["Bread"])
Словники в Python є гнучкими щодо типів даних, які вони можуть зберігати.
Єдина вимога — ключі повинні бути незмінного (immutable) типу (наприклад, strings
, numbers
або tuples
, що містять лише незмінні елементи). Це гарантує, що ключ залишиться незмінним.
Водночас, значення словника можуть бути будь-якого типу і можуть включати змінювані (mutable) типи, такі як списки або інші словники.
Наприклад:
# A dictionary with various types of keys and values store_info = { "Store Name": "Grocery Galore", # String key and string value 42: "Inventory Count", # Integer key and string value ("Bread", "Milk"): [2.99, 1.59] # Tuple key and list value (prices of bread and milk) } # Extracting dictionary element (list) by its key (tuple) print("Data under key ('Bread', 'Milk'):", store_info[("Bread", "Milk")])
Методи словників
Словники надають низку операцій і методів, які забезпечують ефективну роботу з даними. Ось деякі з найбільш поширених методів:
get()
: отримує значення для вказаного ключа, і якщо ключ не знайдено, повертаєNone
. Це відрізняється від використання квадратних дужок (наприклад,grocery_items["Milk"]
), які викликають помилку, якщо ключа не існує;update()
: оновлює словник елементами з іншого словника або ітерованого об'єкта пар ключ-значення, перезаписуючи існуючі ключі;pop()
: видаляє вказаний ключ і повертає відповідне значення.
Примітка
У Python
None
— це спеціальне значення, що означає "нічого" або "немає значення", і часто використовується для позначення порожнього результату або його відсутності.
Приклад застосування
Уявіть, що вам потрібно оновити словник для інвентаря у вашому продуктовому магазині. Ось як це можна зробити за допомогою методів словника:
# Dictionary for a grocery store inventory inventory = { "Apples": 30, "Oranges": 18, "Bananas": 45 } # Get the count of Oranges print("Count of Oranges:", inventory.get("Oranges")) # Update inventory by adding a new item inventory.update({"Mangoes": 20}) print("Updated Inventory:", inventory) # You can also add a new item to the end of the dictionary like this inventory["Pineapples"] = 15 print("Updated Inventory:", inventory) # Remove Bananas from the inventory removed_item = inventory.pop("Bananas") print("Removed Item:", removed_item) print("Current Inventory:", inventory)
Swipe to start coding
Керування інвентарем продуктового магазину за допомогою словника, де кожен елемент є парою ключ-значення з назвою товару та деталями (ID продукту та категорія).
-
Визначити словник
grocery_inventory
для зберігання інформації:- "Milk": (113, "Dairy")
- "Eggs": (116, "Dairy")
- "Bread": (117, "Bakery")
- "Apples": (141, "Produce")
-
Отримати деталі товару
"Bread"
зі словника та зберегти їх у зміннійbread_details
. -
Додати новий товар,
"Cookies"
, з ID продукту143
та категорією"Bakery"
. -
Видалити товар
"Eggs"
зі словника.
Вимоги до виводу
- Вивести деталі
"Bread"
:Details of Bread: <$bread_details>
. - Після додавання
"Cookies"
вивести оновлений інвентар:Inventory after adding Cookies: <$grocery_inventory>
. - Після видалення
"Eggs"
вивести оновлений інвентар:Inventory after removing Eggs: <$grocery_inventory>
.
Рішення
Дякуємо за ваш відгук!