- Словари в Python
- Как создать словарь в Python
- Как получить доступ к значениям словаря в Python
- Как обновить словарь в Python
- Как обновить словарь с помощью метода update()
- Как удалить элементы из словаря в Python
- Как удалить элемент словаря с помощью метода pop()
- Как удалить элемент словаря с помощью метода popitem()
- Как удалить элемент словаря с помощью ключевого слова del
- Как удалить элемент словаря с помощью метода clear()
- Словарные операторы и встроенные функции
- Функция len()
- Функция sorted()
- Оператор in
- Встроенные словарные методы
- Как перебирать словарь
- Как перебирать словарь с помощью метода items()
- Как перебирать словарь с помощью keys()
- Как перебирать словарь с помощью values()
- Заключение
- Словари (dict) и работа с ними. Методы словарей
- Методы словарей
Словари в Python
Одним из наиболее важных составных типов данных в Python является словарь. Это коллекция, в которой данные хранятся в виде пар ключ-значение . Сегодня мы поговорим именно про словари в Python. Обсудим, что они из себя представляют и как над ними выполнять операции CRUD (Create, Read, Update, Delete – Создание, Чтение, Модификация, Удаление).
Примечание. Словари упорядочены и изменяемы, а данные в них не могут дублироваться. При этом стоит иметь в виду, что до Python 3.6 словари были не упорядочены.
Отлично! Теперь давайте познакомимся со словарями поближе!
Как создать словарь в Python
Как мы знаем, словарь состоит из набора пар . Двоеточие ( : ) отделяет каждый ключ от связанного с ним значения.
Мы можем определить словарь, заключив разделенный запятыми список пар ключ-значение в фигурные скобки <> .
В приведенном выше примере Name , Roll и Subjects являются ключами словаря my_dict . Ashutosh Krishna , 23 и [«OS», «CN», «DBMS»] являются их соответствующими значениями.
Мы также можем объявить словарь с помощью встроенной функции dict() . К примеру, это можно сделать следующим образом:
Для такого задания словаря хорошо подойдет список кортежей:
my_dict = dict([ ("Name", "Ashutosh Krishna"), ("Roll", 23), ("Subjects", ["OS", "CN", "DBMS"]) ])
Кроме того, словарь можно создать с помощью указания необходимых значений в качестве аргументов ключевых слов. Например так:
my_dict = dict( Name="Ashutosh Krishna", Roll=23, Subjects=["OS", "CN", "DBMS"] )
Как получить доступ к значениям словаря в Python
Вы не можете получить доступ к значениям словаря, используя индекс.
Если вы попытаетесь сделать это, ваш код выдаст ошибку KeyError :
# Traceback (most recent call last): # File "C:\Users\ashut\Desktop\Test\hello\test.py", line 7, in # print(my_dict[1]) # KeyError: 1
Обратите внимание, что исключение называется KeyError . Означает ли это, что к значениям словаря можно получить доступ с помощью ключей? Да, вы всё правильно поняли!
Вы можете получить значение из словаря, указав соответствующий ключ в квадратных скобках [] .
>>> my_dict['Name'] 'Ashutosh Krishna' >>> my_dict['Subjects'] ['OS', 'CN', 'DBMS']
Если ключ не существует в словаре, мы получаем все то же исключение KeyError :
>>> my_dict['College'] Traceback (most recent call last): File "", line 1, in KeyError: 'College'
Но мы также можем избежать этой ошибки, используя функцию get() . Это будет выглядеть следующим образом:
Если ключ существует в словаре, мы получим соответствующее значение. А если такого ключа нет, то код не выдаст нам ошибку.
Как обновить словарь в Python
Словари изменяемы. Это означает, что они могут быть изменены после создания. Мы можем добавить новую пару ключ-значение или изменить уже существующие пары.
Добавить новый элемент в словарь довольно просто с помощью оператора присваивания. К примеру, это можно сделать так:
>>> my_dict[‘College’] = ‘NSEC’ >>> my_dict
Если ключ уже присутствует в словаре, программа обновит его значение.
Как обновить словарь с помощью метода update()
Мы также можем обновить словарь с помощью встроенного метода update() :
>>> my_dict >>> another_dict = >>> my_dict.update(another_dict) >>> my_dict >>>
Метод update() принимает либо словарь, либо итерируемый объект, состоящий из пар ключ-значение (обычно это кортежи). Кроме того, можно прописать значение для ключевого слова, как в следующем примере:
>>> my_dict.update(Branch=’CSE’) >>> my_dict
От редакции Pythonist. Также рекомендуем статью «Как объединить словари в Python».
Как удалить элементы из словаря в Python
Есть несколько способов удалить элементы из словаря в Python.
Как удалить элемент словаря с помощью метода pop()
Мы можем удалить конкретный элемент словаря с помощью метода pop() . Этот метод удаляет элемент с указанным ключом и возвращает удаленное значение. Например, это можно сделать следующим образом:
>>> roll = my_dict.pop(‘Roll’) >>> roll 35 >>> my_dict
Как удалить элемент словаря с помощью метода popitem()
popitem() удаляет последнюю пару ключ-значение и возвращает ее в виде кортежа. Это выглядит так:
>>> my_dict.popitem() (‘Branch’, ‘CSE’) >>> my_dict
Как удалить элемент словаря с помощью ключевого слова del
Вы можете использовать ключевое слово del для удаления определенной пары ключ-значение или даже всего словаря. Ключевое слово del работает следующим образом:
>>> del my_dict['Subjects'] >>> my_dict >>> del my_dict >>> my_dict Traceback (most recent call last): File "", line 1, in NameError: name 'my_dict' is not defined
Как удалить элемент словаря с помощью метода clear()
Метод clear() очищает все пары ключ-значение в словаре. Это делается вот так:
>>> my_dict >>> my_dict.clear() >>> my_dict <>
Обратите внимание, что после вызова метода clear() вывод словаря с помощью print() не приводит к ошибке, поскольку метод clear() не удаляет сам словарь, а лишь очищает его от всех значений. В то время как ключевое слово del именно удаляет словарь. Вот почему в предыдущем случае мы получили NameError .
Словарные операторы и встроенные функции
Давайте поговорим о двух важных операторах и встроенных функциях, которые мы можем использовать при работе со словарями.
Функция len()
Функция len() возвращает количество пар ключ-значение, имеющихся в заданном словаре. К примеру, мы можем использовать функцию len() следующим образом:
Функция sorted()
Функция sorted() сортирует элементы заданного итерируемого объекта в определенном порядке (по возрастанию или по убыванию) и возвращает их в виде списка. Принцип работы данной функции показан ниже:
>>> sorted(my_dict) ['Name', 'Roll', 'Subjects']
Оператор in
Вы можете использовать оператор in , чтобы проверить, присутствует ли ключ в словаре. Это позволит вам избежать ошибок при вызове несуществующих ключей. Пример использования оператора in :
>>> 'Roll' in my_dict True >>> 'College' in my_dict False
Встроенные словарные методы
Для словарей в Python доступны различные встроенные методы. Ранее мы уже обсуждали некоторые из них, такие как clear() , pop() и popitem() . Давайте рассмотрим еще несколько.
Метод | Описание |
---|---|
clear() | Удаляет все элементы из словаря |
copy() | Возвращает копию словаря |
fromkeys(seq[, v]) | Возвращает новый словарь с ключами из seq и значением, равным v (по умолчанию None) |
get(key[,d]) | Возвращает значение по заданному ключу. Если ключ не существует, возвращает d (по умолчанию None) |
items() | Возвращает новый объект, содержащий элементы словаря в формате (ключ, значение) |
keys() | Возвращает новый объект, содержащий ключи словаря |
pop(key[,d]) | Удаляет элемент по ключу и возвращает его значение или d, если ключ не найден. Если d не указан и ключ не найден, возникает KeyError |
popitem() | Удаляет и возвращает элемент (пару ключ, значение), добавленный в словарь последним. До Python 3.7 удалялся и возвращался произвольный элемент. Вызывает KeyError, если словарь пуст |
setdefault(key[,d]) | Возвращает соответствующее значение, если ключ находится в словаре. Если нет, вставляет ключ со значением d и возвращает d (по умолчанию None) |
update([other]) | Обновляет словарь парами ключ-значение из other, перезаписывая существующие ключи |
values() | Возвращает новый объект, содержащий значения словаря |
Как перебирать словарь
По умолчанию, когда мы используем цикл for для перебора словаря, мы получаем ключи. Вы можете видеть это в приведенном ниже коде:
my_dict = < "Name": "Ashutosh Krishna", "Roll": 23, "Subjects": ["OS", "CN", "DBMS"] >for item in my_dict: print(item) # Output: # Name # Roll # Subjects
Однако мы также можем перебирать словарь и другими способами.
Как перебирать словарь с помощью метода items()
Когда мы используем метод items() для перебора словаря, он возвращает нам кортеж из ключа и значения на каждой итерации. Таким образом мы можем напрямую получить ключ и значение. Сделать это можно следующим способом:
my_dict = < "Name": "Ashutosh Krishna", "Roll": 23, "Subjects": ["OS", "CN", "DBMS"] >for key, value in my_dict.items(): print(key, value)
Name Ashutosh Krishna Roll 23 Subjects ['OS', 'CN', 'DBMS']
Важно отметить, что в цикле for следует указать две переменных через запятую. В данном случае мы использовали key и values , однако можно использовать любые имена. К примеру, for i, j или for first, second – насколько вам хватит фантазии.
Как перебирать словарь с помощью keys()
В этом случае мы получаем только ключи на каждой итерации. Выглядит это так:
my_dict = < "Name": "Ashutosh Krishna", "Roll": 23, "Subjects": ["OS", "CN", "DBMS"] >for key in my_dict.keys(): print(key)
Запустите данный код, и вы получите следующее:
Как перебирать словарь с помощью values()
При использовании values() в цикле for мы получаем значения словаря. Делается это так:
my_dict = < "Name": "Ashutosh Krishna", "Roll": 23, "Subjects": ["OS", "CN", "DBMS"] >for value in my_dict.values(): print(value)
В таком случае мы получим следующий результат:
Ashutosh Krishna 23 ['OS', 'CN', 'DBMS']
Заключение
Из этой статьи мы узнали, что такое словари в Python и как выполнять над ними операции CRUD. Мы также разобрали несколько методов и функций, применяемых к словарям, и посмотрели это все на примерах.
Словари (dict) и работа с ними. Методы словарей
Сегодня я расскажу о таком типе данных, как словари, о работе со словарями, операциях над ними, методах, о генераторах словарей.
Словари в Python — неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.
Чтобы работать со словарём, его нужно создать. Сделать это можно несколькими способами. Во-первых, с помощью литерала:
Во-вторых, с помощью функции dict:
В-третьих, с помощью метода fromkeys:
В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы списков.
Теперь попробуем добавить записей в словарь и извлечь значения ключей:
: Как видно из примера, присвоение по новому ключу расширяет словарь, присвоение по существующему ключу перезаписывает его, а попытка извлечения несуществующего ключа порождает исключение. Для избежания исключения есть специальный метод (см. ниже), или можно перехватывать исключение.
Что же можно еще делать со словарями? Да то же самое, что и с другими объектами: встроенные функции, ключевые слова (например, циклы for и while), а также специальные методы словарей.
Методы словарей
dict.clear() — очищает словарь.
dict.copy() — возвращает копию словаря.
classmethod dict.fromkeys(seq[, value]) — создает словарь с ключами из seq и значением value (по умолчанию None).
dict.get(key[, default]) — возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).
dict.items() — возвращает пары (ключ, значение).
dict.keys() — возвращает ключи в словаре.
dict.pop(key[, default]) — удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).
dict.popitem() — удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.
dict.setdefault(key[, default]) — возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ со значением default (по умолчанию None).
dict.update([other]) — обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!).
dict.values() — возвращает значения в словаре.
Для вставки кода на Python в комментарий заключайте его в теги