Словарь Python: все, что вам нужно знать [с примерами]

Опубликовано: 2020-04-14

Если вы работаете с Python, вы наверняка слышали о списках, строках и кортежах. Сегодня мы поговорим о еще одном важном элементе Python — словаре. После того, как вы закончите читать этот пост, вы должны иметь относительно хорошее представление о словарях Python, о том, как их создавать и как их использовать.

Оглавление

Что такое словарь Python?

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

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

Узнайте больше о: Типы данных Python

Словарь против списков

В Python словари и списки имеют как сходства, так и различия. Общие черты, общие для словарей и списков, включают:

  • Они изменчивы.
  • Они динамичны.
  • Они могут быть вложены друг в друга — список может содержать другой список, а словарь может содержать другой словарь. Кроме того, список может содержать словарь и наоборот.

Основное различие между словарями и списками заключается в том, что доступ к элементам списка (в зависимости от их положения в списке) можно получить с помощью индексации, а доступ к элементам словаря осуществляется с помощью ключей.

Словарь Python — Методы

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

  • copy() — возвращает неглубокую копию словаря.
  • clear() — удаляет все элементы из словаря.
  • type() — возвращает тип переданной переменной.
  • pop() — удаляет и возвращает элемент из словаря после предоставления ключа.
  • popitem() — удаляет и возвращает произвольный элемент (ключ, значение). Кроме того, он вызывает KeyError, если словарь пуст.
  • get() — используется для доступа к значению ключа.
  • items() – возвращает новое представление элементов словаря (ключ, значение).
  • str() — генерирует строковое представление словаря для печати.
  • pop(key[,d]) — удаляет элемент с ключом и возвращает его значение, а если ключ не найден, возвращает d . Однако, если d не указан и ключ не найден, возвращается KeyError .
  • get(key[,d]) — возвращает значение ключа. Если ключ не существует, возвращается d (по умолчанию None ).
  • fromkeys(seq[, v]) — возвращает новый словарь с ключами из seq и значением, равным v (по умолчанию None ).
  • update([other]) — обновляет словарь парами ключ/значение из другого , перезаписывая существующие ключи.

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

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

д = {

<ключ>: <значение>,

<ключ>: <значение>,

.

.

.

<ключ>: <значение>

}

Вы также можете использовать встроенную функцию dict() для создания словаря, например:

# пустой словарь

мой_дикт = {}

# словарь с целочисленными ключами

my_dict = {1: 'яблоко', 2: 'мяч'}

# словарь со смешанными ключами

my_dict = {'имя': 'Джон', 1: [2, 4, 3]}

# используя дикт()

my_dict = dict({1:'яблоко', 2:'мяч'})

# из последовательности, в которой каждый элемент является парой

my_dict = dict([(1,'яблоко'), (2,'мяч')])

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

Чтобы получить доступ к элементу из словаря, вы должны обратиться к его ключевому имени. Вы можете использовать метод get() для извлечения элемента или указать имя ключа в квадратных скобках [ ]. Если ключ не найден в словаре, метод get() возвращает None вместо KeyError.

Вот пример кода, используемого для доступа к элементам из словаря:

#!/usr/бин/питон

dict = {'Имя': 'Зара', 'Возраст': 7, 'Класс': 'Первый'}

напечатать «дикт['Имя']: «, дикт['Имя']

print "dict['Возраст']: ", dict['Возраст']

Как добавить или изменить элементы в словаре?

Поскольку словари Python изменяемы, вы можете добавлять элементы или даже изменять значения существующих элементов, содержащихся в словаре. Элементы могут быть добавлены в словарь разными способами. Однако вы можете добавить в словарь одно значение за один раз, определив его вместе с его ключом.

Например, dict[key] = 'значение'. Чтобы обновить существующее значение в словаре, вы должны использовать встроенный метод update() . Вы должны помнить, что при добавлении значения в словарь, если значение уже существует, значение обновляется, иначе в словарь добавляется новый ключ со значением.

my_dict = {'имя':'Джек', 'возраст': 26}

# обновить значение

my_dict['возраст'] = 27

#Вывод: {'возраст': 27, 'имя': 'Джек'}

печать (мой_дикт)

# добавить элемент

my_dict['адрес'] = 'Центр города'

# Вывод: {'адрес': 'Центр', 'возраст': 27, 'имя': 'Джек'}

печать (мой_дикт)

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

Чтобы удалить или удалить элемент из словаря, вы можете использовать метод pop() . Он удалит конкретный элемент с предоставленным кетом и вернет значение. Вы также можете использовать метод popitem() для удаления и возврата произвольного элемента (ключа и значения) из словаря.

Если вы хотите удалить все элементы сразу, вы можете использовать метод clear() . Вы также можете использовать ключевое слово del для удаления отдельных элементов или метод del dict() для удаления всего словаря.

Пример использования метода del dict():

#!/usr/бин/питон

dict = {'Имя': 'Зара', 'Возраст': 7, 'Класс': 'Первый'}

del dict['Имя']; # удалить запись с ключом 'Имя'

дикт.очистить(); # удалить все записи в dict

дель дикт ; # удалить весь словарь

print "dict['Возраст']: ", dict['Возраст']

print "dict['Школа']: ", dict['Школа']

Также узнайте: Зарплата разработчиков Python в Индии

Как перебрать словарь?

В словаре Python вы можете выполнить цикл, используя цикл for . Когда вы перебираете словарь, ключи словаря являются возвращаемым значением.

Пример перебора словаря:

для x в этом словаре:

печать (х)

Читайте: Самые важные функции Python

Как проверить, присутствует ли ключ в словаре?

Вы можете использовать ключевое слово « in », чтобы проверить, присутствует ли определенный ключ в словаре, например:

этотдикт = {

«марка»: «Феррари»,

«модель»: «Daytone»,

«год»: «1968»

}

если «модель» в этом словаре:

print("Да, 'model' - один из ключей в словаре thisdict")

Как определить длину словаря?

Вы можете установить длину словаря, то есть определить, сколько элементов (пар ключ:значение) он будет иметь, используя метод len() , например:

печать (длина (thisdict))

Как скопировать словарь?

Вы можете скопировать словарь, используя встроенный метод copy() . Однако вы не можете скопировать словарь, набрав dict2 = dict1 , потому что dict2 будет только ссылкой на dict1 .

Вот пример использования метода copy() :

этотдикт = {

«марка»: «Форд»,

«модель»: «Мустанг»,

«год»: 1964

}

mydict = thisdict.copy()

печать (mydict)

Словарь Python: понимание

В Python понимание словаря — это простой и аккуратный способ создания нового словаря из итерируемого объекта. Он состоит из пары выражений (ключ: значение), за которой следует оператор for внутри фигурных скобок { }. Понимание словаря может содержать несколько операторов for или if .

Вот пример создания словаря, где каждый элемент представляет собой пару числа и его квадрата:

квадраты = {x: x*x для x в диапазоне (6)}

# Вывод: {0:0, 1:1, 2:4, 3:9, 4:16, 5:25}

печать (квадраты)

Подробнее: Библиотеки визуализации данных Python

Подведение итогов

Вот и все основные знания, которые вам нужно знать о словаре Python!

Если вам интересно узнать о Python, все о науке о данных, ознакомьтесь с сертификационными курсами upGrad по науке о данных, которые созданы для работающих профессионалов и предлагают более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевыми экспертами, 1-на -1 с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.

Зачем нужны словари в Python?

Неупорядоченный набор значений данных — это словарь Python. Словари требуются в Python для хранения значений данных, как карты. Во всех других типах данных они могут содержать только одно значение в качестве элемента. Но словарь может содержать пару ключ:значение. Эта пара делает работу словаря немного более оптимизированной.

Для создания словаря в Python вам просто нужно поместить элементы в фигурные скобки, разделив их запятой. Значения в словаре могут повторяться и дублироваться, но вы не можете повторять ключи в словаре. Ключи в словаре чувствительны к регистру, поэтому даже два ключа с одинаковым именем, но в разных регистрах будут обрабатываться по-разному.

Что можно хранить в словаре Python?

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

Вы можете легко получить сохраненное значение, вызвав ключ, в котором хранится конкретное значение. Если вы внесете какие-либо изменения в возвращаемый список, это также повлияет на словарь. Нужно понимать, что значения, хранящиеся в словаре, и полученный список — это одни и те же объекты.

Чем отличаются Hashtable и Dictionary?

Hashtable — это неуниверсальная коллекция, а Dictionary — это общая коллекция значений данных. Вам разрешено хранить пары ключ-значение одного и того же, а также разных типов данных, в то время как в словаре вы можете хранить только пары ключ-значение одного и того же типа данных.

Поскольку в Hashtable есть упаковка и распаковка, процесс извлечения данных происходит медленнее по сравнению со словарем. В хеш-таблице не поддерживается порядок, но вы всегда будете видеть поддерживаемый порядок сохраненных значений в словаре.