Share This
Связаться со мной
Крути в низ
Categories
//Словари в Python

Словари в Python

19.01.2022Category : Python

Одним из наиболее важных составных типов данных в Python является словарь. Это коллекция, в которой данные хранятся в виде пар ключ-значение {key:value}. Сегодня мы поговорим именно про словари в Python. Обсудим, что они из себя представляют и как над ними выполнять операции CRUD (Create, Read, Update, Delete – Создание, Чтение, Модификация, Удаление).

Примечание. Словари упорядочены и изменяемы, а данные в них не могут дублироваться. При этом стоит иметь в виду, что до Python 3.6 словари были не упорядочены.

В этой статье:

  • Как создать словарь в Python
  • Как получить доступ к значениям словаря
  • Обновление словаря
  • Удаление элементов из словаря
  • Словарные операторы и встроенные функции
  • Как перебирать словарь

Отлично! Теперь давайте познакомимся со словарями поближе!

Как создать словарь в Python

Как мы знаем, словарь состоит из набора пар {ключ:значение}. Двоеточие (:) отделяет каждый ключ от связанного с ним значения.

Мы можем определить словарь, заключив разделенный запятыми список пар ключ-значение в фигурные скобки {}.

my_dict = {     "Name": "Ashutosh Krishna",     "Roll": 23,     "Subjects": ["OS", "CN", "DBMS"] }

В приведенном выше примере 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"]) ])

Кроме того, словарь можно создать с помощью указания необходимых значений в качестве аргументов ключевых слов. Например так:

my_dict = dict(     Name="Ashutosh Krishna",      Roll=23,      Subjects=["OS", "CN", "DBMS"] )

slovari v python d9f5a0b - Словари в Python

Лаборатория Django-разработки

За 3 месяца отработай навыки Django-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Подробнее ×

Как получить доступ к значениям словаря в Python

Вы не можете получить доступ к значениям словаря, используя индекс.

my_dict = {     "Name": "Ashutosh Krishna",     "Roll": 23,     "Subjects": ["OS", "CN", "DBMS"] }  print(my_dict[1])

Если вы попытаетесь сделать это, ваш код выдаст ошибку KeyError:

# Traceback (most recent call last): #   File "C:UsersashutDesktopTesthellotest.py", line 7, in <module> #     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 "<stdin>", line 1, in <module> KeyError: 'College'

Но мы также можем избежать этой ошибки, используя функцию get(). Это будет выглядеть следующим образом:

>>> my_dict.get('College') >>> 

Если ключ существует в словаре, мы получим соответствующее значение. А если такого ключа нет, то код не выдаст нам ошибку.

Как обновить словарь в Python

Словари изменяемы. Это означает, что они могут быть изменены после создания. Мы можем добавить новую пару ключ-значение или изменить уже существующие пары.

Добавить новый элемент в словарь довольно просто с помощью оператора присваивания. К примеру, это можно сделать так:

>>> my_dict['College'] = 'NSEC' >>> my_dict                     {'Name': 'Ashutosh Krishna', 'Roll': 23, 'Subjects': ['OS', 'CN', 'DBMS'], 'College': 'NSEC'}

Если ключ уже присутствует в словаре, программа обновит его значение.

>>> my_dict['Roll'] = 35 >>> my_dict {'Name': 'Ashutosh Krishna', 'Roll': 35, 'Subjects': ['OS', 'CN', 'DBMS'], 'College': 'NSEC'}

Как обновить словарь с помощью метода update()

Мы также можем обновить словарь с помощью встроенного метода update():

>>> my_dict {'Name': 'Ashutosh Krishna', 'Roll': 35, 'Subjects': ['OS', 'CN', 'DBMS'], 'College': 'NSEC'} >>> another_dict = {'Branch': 'IT'} >>> my_dict.update(another_dict) >>> my_dict {'Name': 'Ashutosh Krishna', 'Roll': 35, 'Subjects': ['OS', 'CN', 'DBMS'], 'College': 'NSEC', 'Branch': 'IT'} >>>

Метод update() принимает либо словарь, либо итерируемый объект, состоящий из пар ключ-значение (обычно это кортежи). Кроме того, можно прописать значение для ключевого слова, как в следующем примере:

>>> my_dict.update(Branch='CSE')  >>> my_dict {'Name': 'Ashutosh Krishna', 'Roll': 35, 'Subjects': ['OS', 'CN', 'DBMS'], 'College': 'NSEC', 'Branch': 'CSE'}

От редакции Pythonist. Также рекомендуем статью «Как объединить словари в Python».

Как удалить элементы из словаря в Python

Есть несколько способов удалить элементы из словаря в Python.

Как удалить элемент словаря с помощью метода pop()

Мы можем удалить конкретный элемент словаря с помощью метода pop(). Этот метод удаляет элемент с указанным ключом и возвращает удаленное значение. Например, это можно сделать следующим образом:

>>> roll = my_dict.pop('Roll')  >>> roll 35 >>> my_dict {'Name': 'Ashutosh Krishna', 'Subjects': ['OS', 'CN', 'DBMS'], 'College': 'NSEC', 'Branch': 'CSE'}

Как удалить элемент словаря с помощью метода popitem()

popitem() удаляет последнюю пару ключ-значение и возвращает ее в виде кортежа. Это выглядит так:

>>> my_dict.popitem() ('Branch', 'CSE') >>> my_dict {'Name': 'Ashutosh Krishna', 'Subjects': ['OS', 'CN', 'DBMS'], 'College': 'NSEC'}

Как удалить элемент словаря с помощью ключевого слова del

Вы можете использовать ключевое слово del для удаления определенной пары ключ-значение {key:value} или даже всего словаря. Ключевое слово del работает следующим образом:

>>> del my_dict['Subjects']  >>> my_dict {'Name': 'Ashutosh Krishna', 'College': 'NSEC'} >>> del my_dict >>> my_dict Traceback (most recent call last):   File "<stdin>", line 1, in <module> NameError: name 'my_dict' is not defined

Как удалить элемент словаря с помощью метода clear()

Метод clear() очищает все пары ключ-значение {key:value} в словаре. Это делается вот так:

>>> my_dict {'Name': 'Ashutosh Krishna', 'Roll': 23, 'Subjects': ['OS', 'CN', 'DBMS']} >>> my_dict.clear() >>> my_dict {}

Обратите внимание, что после вызова метода clear() вывод словаря с помощью print() не приводит к ошибке, поскольку метод clear() не удаляет сам словарь, а лишь очищает его от всех значений. В то время как ключевое слово del именно удаляет словарь. Вот почему в предыдущем случае мы получили NameError.

Словарные операторы и встроенные функции

Давайте поговорим о двух важных операторах и встроенных функциях, которые мы можем использовать при работе со словарями.

Функция len()

Функция len() возвращает количество пар ключ-значение, имеющихся в заданном словаре. К примеру, мы можем использовать функцию len() следующим образом:

>>> my_dict {'Name': 'Ashutosh Krishna', 'Roll': 23, 'Subjects': ['OS', 'CN', 'DBMS']} >>> len(my_dict) 3

Функция 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)

Запустите данный код, и вы получите следующее:

Name Roll Subjects

Как перебирать словарь с помощью 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. Мы также разобрали несколько методов и функций, применяемых к словарям, и посмотрели это все на примерах.

Успехов в написании кода!

Перевод статьи «Python Dictionary – How to Perform CRUD Operations on dicts in Python».

slovari v python e5c72f8 - Словари в Python

Лаборатория Django-разработки

За 3 месяца отработай навыки Django-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Подробнее ×

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close