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

Словари в 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 django datetime field

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

Как обновить словарь в 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 .

Читайте также:  Кнопка наверх с помощью CSS - "Нубекс"

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

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

Функция 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 – насколько вам хватит фантазии.

Читайте также:  Задачи на основе python

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

Источник

2. Создание словаря при помощи dict()

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

15 вещей, которые нужно знать о словарях Python

По умолчанию индексом является номер строки (целое число, начинающееся с 0). Изменим индексы, передав список индексов в DataFrame.

15 вещей, которые нужно знать о словарях Python

14.2. Создание DataFrame из списка словарей

Список словарей также может быть использован для создания DataFrame, где ключи – имена столбцов. Как и раньше, мы можем изменять индексы, передавая список индексов в функцию DataFrame.

15 вещей, которые нужно знать о словарях Python

15. Функции в Pandas, использующие словари

В Pandas есть несколько функций, использующих словари в качестве входных значений, например, pandas.DataFrame.rename и pandas.DataFrame.replace .

15.1. pandas.DataFrame.rename

Эта функция возвращает DataFrame с переименованными метками осей. На вход можно подать словарь, в котором ключи – старые имена, а значения – новые. Метки, не содержащиеся в словаре, остаются неизменными.

15 вещей, которые нужно знать о словарях Python 15 вещей, которые нужно знать о словарях Python

15.2. pandas.DataFrame.replace

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

15 вещей, которые нужно знать о словарях Python 15 вещей, которые нужно знать о словарях Python

Итак, мы рассмотрели разные способы создания словаря, базовые операции (добавление, изменение, удаление элементов). Также мы узнали когда стоит использовать глубокую копию словаря вместо поверхностной. Научились строить матрёшки – вложенные словари. Такие конструкции встретятся, когда вы будете качать, например, с ВКонтакте через его API разнообразную информацию.

Если вы любите Python, Библиотека программиста подготовила ещё много интересных материалов об этом замечательном языке:

Свежие материалы доступны по тегу Python.

Источники

Источник

Оцените статью