Словник Python (з прикладами)

У цьому посібнику ви дізнаєтеся все про словники Python; як вони створюються, отримуючи доступ до них, додаючи, видаляючи з них елементи та різні вбудовані методи.

Відео: словники Python для зберігання пар ключ / значення

Словник Python - це невпорядкована колекція елементів. Кожен предмет словника має свою key/valueпару.

Словники оптимізовані для отримання значень, коли ключ відомий.

Створення словника Python

Створення словника просте, як розміщення предметів у фігурних дужках, ()розділених комами.

Елемент має a keyта відповідний, valueщо виражається у вигляді пари ( ключ: значення ).

Хоча значення можуть бути будь-якого типу даних і можуть повторюватися, ключі повинні мати незмінний тип (рядок, число або кортеж із незмінними елементами) і повинні бути унікальними.

 # empty dictionary my_dict = () # dictionary with integer keys my_dict = (1: 'apple', 2: 'ball') # dictionary with mixed keys my_dict = ('name': 'John', 1: (2, 4, 3)) # using dict() my_dict = dict((1:'apple', 2:'ball')) # from sequence having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))

Як ви можете бачити зверху, ми також можемо створити словник за допомогою вбудованої dict()функції.

Доступ до елементів зі словника

Хоча індексація використовується з іншими типами даних для доступу до значень, словник використовує keys. Клавіші можна використовувати як у квадратних дужках, так ()і разом із get()методом.

Якщо ми використовуємо квадратні дужки (), KeyErrorпіднімається на випадок, якщо в словнику не знайдено ключа. З іншого боку, get()метод повертається, Noneякщо ключ не знайдений.

 # get vs () for retrieving elements my_dict = ('name': 'Jack', 'age': 26) # Output: Jack print(my_dict('name')) # Output: 26 print(my_dict.get('age')) # Trying to access keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))

Вихідні дані

 Jack 26 None Traceback (останній дзвінок останній): Файл "", рядок 15, надруковано (my_dict ('address')) KeyError: 'address'

Зміна та додавання елементів словника

Словники можна змінювати. Ми можемо додавати нові елементи або змінювати значення існуючих елементів за допомогою оператора присвоєння.

Якщо ключ уже присутній, тоді існуюче значення оновлюється. Якщо ключа немає, до словника додається нова пара ( ключ: значення ).

 # Changing and adding Dictionary Elements my_dict = ('name': 'Jack', 'age': 26) # update value my_dict('age') = 27 #Output: ('age': 27, 'name': 'Jack') print(my_dict) # add item my_dict('address') = 'Downtown' # Output: ('address': 'Downtown', 'age': 27, 'name': 'Jack') print(my_dict)

Вихідні дані

 ('name': 'Jack', 'age': 27) ('name': 'Jack', 'age': 27, 'address': 'Downtown')

Видалення елементів зі словника

Ми можемо видалити певний елемент зі словника за допомогою pop()методу. Цей метод видаляє елемент із наданим keyта повертає файл value.

popitem()Метод може бути використаний для видалення і повернення довільної (key, value)пари елемента зі словника. Всі предмети можна вилучити відразу, використовуючи clear()метод.

Ми також можемо використовувати delключове слово для видалення окремих елементів або всього словника.

 # Removing elements from a dictionary # create a dictionary squares = (1: 1, 2: 4, 3: 9, 4: 16, 5: 25) # remove a particular item, returns its value # Output: 16 print(squares.pop(4)) # Output: (1: 1, 2: 4, 3: 9, 5: 25) print(squares) # remove an arbitrary item, return (key,value) # Output: (5, 25) print(squares.popitem()) # Output: (1: 1, 2: 4, 3: 9) print(squares) # remove all items squares.clear() # Output: () print(squares) # delete the dictionary itself del squares # Throws Error print(squares)

Вихідні дані

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (останній дзвінок останній): Файл "", рядок 30, надруковано (квадрати) NameError: ім'я 'квадрати' не визначено

Методи словника Python

Методи, доступні зі словником, наведені нижче. Деякі з них уже використовувались у наведених вище прикладах.

Метод Опис
ясно () Видаляє всі елементи зі словника.
копія () Повертає неглибоку копію словника.
fromkeys (seq (, v)) Повертає новий словник із ключами від seq і значенням, рівним v (за замовчуванням None).
get (ключ (, d)) Повертає значення ключа. Якщо ключ не існує, повертає d (за замовчуванням None).
елементи () Повернути новий об’єкт елементів словника у форматі (ключ, значення).
клавіші () Повертає новий об'єкт ключів словника.
поп (клавіша (, d)) Видаляє елемент за допомогою ключа і повертає його значення або d, якщо ключ не знайдено. Якщо d не вказано і ключ не знайдено, він піднімається KeyError.
popitem () Видаляє та повертає довільний елемент ( ключ, значення ). Піднімається, KeyErrorякщо словник порожній.
setdefault (клавіша (, d)) Повертає відповідне значення, якщо ключ є у словнику. Якщо ні, вставляє ключ зі значенням d і повертає d (за замовчуванням None).
оновити ((інше)) Оновлює словник парами ключ / значення з інших, перезаписуючи існуючі ключі.
значення () Повертає новий об'єкт значень словника

Ось декілька прикладів використання цих методів.

 # Dictionary Methods marks = ().fromkeys(('Math', 'English', 'Science'), 0) # Output: ('English': 0, 'Math': 0, 'Science': 0) print(marks) for item in marks.items(): print(item) # Output: ('English', 'Math', 'Science') print(list(sorted(marks.keys())))

Вихідні дані

 ('Math': 0, 'English': 0, 'Science': 0) ('Math', 0) ('English', 0) ('Science', 0) ('English', 'Math', ' Наука ')

Розуміння словника Python

Розуміння словника - це елегантний та стислий спосіб створити новий словник із ітеративного тексту у Python.

Розуміння словника складається з пари виразів ( ключ: значення ), за якою йде forвираз у фігурних дужках ().

Ось приклад складання словника, де кожен елемент є парою числа та його квадрата.

 # Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)

Вихідні дані

 (0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)

Цей код еквівалентний

 squares = () for x in range(6): squares(x) = x*x print(squares)

Вихідні дані

 (0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)

A dictionary comprehension can optionally contain more for or if statements.

An optional if statement can filter out items to form the new dictionary.

Here are some examples to make a dictionary with only odd items.

 # Dictionary Comprehension with if conditional odd_squares = (x: x*x for x in range(11) if x % 2 == 1) print(odd_squares)

Output

 (1: 1, 3: 9, 5: 25, 7: 49, 9: 81)

To learn more dictionary comprehensions, visit Python Dictionary Comprehension.

Other Dictionary Operations

Dictionary Membership Test

We can test if a key is in a dictionary or not using the keyword in. Notice that the membership test is only for the keys and not for the values.

 # Membership Test for Dictionary Keys squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: True print(1 in squares) # Output: True print(2 not in squares) # membership tests for key only not value # Output: False print(49 in squares)

Output

 True True False

Iterating Through a Dictionary

We can iterate through each key in a dictionary using a for loop.

 # Iterating through a Dictionary squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) for i in squares: print(squares(i))

Output

 1 9 25 49 81

Dictionary Built-in Functions

Вбудовані функції , такі як all(), any(), len(), cmp(), sorted()і т.д. , як правило , використовується зі словниками для виконання різних завдань.

Функція Опис
всі () Повертає, Trueякщо всі клавіші словника істинні (або якщо словник порожній).
будь-який () Повернути, Trueякщо будь-який ключ словника відповідає дійсності. Якщо словник порожній, поверніться False.
len () Поверніть довжину (кількість елементів) у словнику.
cmp () Порівнює предмети двох словників. (Недоступно в Python 3)
відсортовано () Повернути новий відсортований список ключів у словнику.

Ось кілька прикладів, які використовують вбудовані функції для роботи зі словником.

 # Dictionary Built-in Functions squares = (0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: False print(all(squares)) # Output: True print(any(squares)) # Output: 6 print(len(squares)) # Output: (0, 1, 3, 5, 7, 9) print(sorted(squares))

Вихідні дані

 False True 6 (0, 1, 3, 5, 7, 9)

Цікаві статті...