Реклама

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

пары ключ-значение словаря Python

В этой статье мы познакомим вас с работой со словарем Python.

Создание словаря

Есть несколько способов создания словаря Python. Самое простое использует инициализацию скобок, с синтаксисом напоминает JSON Как получить Python и JavaScript для общения с помощью JSONСегодня я покажу вам, как использовать JSON для отправки данных из JavaScript в Python. Я расскажу, как настроить веб-сервер вместе со всем необходимым кодом. Прочитайте больше .

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27}

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

instagram viewer
Все, что вам нужно знать об оперативной памяти и управлении памятьюRAM - это кратковременная память вашего компьютера. Следовательно, управление памятью оказывает значительное влияние на производительность системы. Здесь мы объясняем, как работает ОЗУ и можете ли вы сделать что-нибудь для повышения ее эффективности. Прочитайте больше .

rain_percent = {1980: «17%», 1981: «15%», 1982: «10%»} печать rain_percent. печать rain_percent [1980] # печатает. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Указание пар ключ-значение

Вы также можете создать и инициализировать словарь, используя пары «имя-значение» в качестве аргументов ключевых слов для DICT () конструктор.

население = дикт (Калифорния = 37253956, Колорадо = 5029196, Коннектикут = 3574097, Делавэр = 897934) печать населения. # печатает. {'Коннектикут': 3574097, 'Делавэр': 897934, 'Калифорния': 37253956, 'Колорадо': 5029196}

Массив кортежей ключ-значение

Еще одним способом создания словаря является использование массива кортежей ключ-значение. Вот тот же пример, что и выше.

пары = [(«Калифорния», 37253956), («Колорадо», 5029196), («Коннектикут», 3574097), («Делавэр», 897934)] население = дикт (пары) печать населения. # печатает. {'Коннектикут': 3574097, 'Делавэр': 897934, 'Калифорния': 37253956, 'Колорадо': 5029196}

Дикт Понимание

Понимание Dict обеспечивает классный синтаксис для инициализации dict, если вы можете вычислить значения на основе ключей. Ниже приводится инициализация набора чисел и квадратных значений для диапазона чисел.

выведите {x: x ** 2 для x в xrange (10, 20)} # печатает. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

Как это работает? Последняя часть (для x в xrange (10, 20)) возвращает диапазон чисел в указанном диапазоне. Диктовая часть понимания ({x: x ** 2 ..}) перебирает этот диапазон и инициализирует словарь.

Работа со словарем Python

Что вы можете делать со словарями после их создания? Ну, вы можете получить доступ к элементам, обновить значения, удалить элементы и т. Д.

Доступ к элементам словаря Python

Получите доступ к элементу dict, используя ключ в скобках, так же, как вы массив или список Как работают массивы и списки в PythonМассивы и списки являются одними из наиболее полезных структур данных в программировании, хотя мало кто использует их в полной мере. Прочитайте больше .

население печати ['Делавэр'] # печатает. 897934.

Если ключ является числом, вам не нужны кавычки. Затем выражение выглядит как индексирование списка или массива.

печать rain_percent [1980] # печатает. 17%

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

х = '1980' печать rain_percent [x] # приводит к 1 х = '1980' > 2 print rain_percent [x] KeyError: '1980'

Доступ к несуществующему ключу это ошибка.

rain_percent = {1980: «17%», 1981: «15%», 1982: «10%»} печать rain_percent [1983] # prints 1 rain_percent = {1980: «17%», 1981: «15%», 1982: «10%»} > 2 print rain_percent [1983] KeyError: 1983.

Чтобы получить доступ к ключу и предоставить значение по умолчанию, если сопоставление не существует, используйте получить() метод со значением по умолчанию в качестве второго аргумента.

print rain_percent.get (1985, '0%') # печатает. 0%

Проверка на существование

Что делать, если вы хотите проверить наличие ключа, не пытаясь получить к нему доступ (и, возможно, KeyError как указано выше)? Вы можете использовать в Ключевое слово в форме введите в Dct который возвращает логическое значение.

печать 1980 года в rain_percent. напечатайте '1980' в rain_percent. # печатает. Правда. Ложь. 

Отмените условие (т.е. убедитесь, что ключ отсутствует в словаре Python), используя форму ключ не в ДКТ. Это эквивалентно стандартному отрицанию Python не ключ в ДКТ.

печать 1980 года не в rain_percent. печать 1985 года не в rain_percent. # печатает. Ложь. Правда. 

Модифицирующие элементы

Измените значение, присвоив требуемый ключ.

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} пользователи ['age'] = 29. пользователи печати. # печатает. {'фамилия': 'Смит', 'возраст': 29, 'имя': 'Джон'}

Используйте тот же синтаксис, чтобы добавить новое отображение в словарь Python.

пользователи ['dob'] = '15 -sep-1971 ' пользователи печати. # печатает. {'dob': '15 -sep-1971 ',' фамилия ':' Смит ',' возраст ': 29,' имя ':' Джон '}

Обновите несколько элементов словаря за один раз, используя Обновить() метод.

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} users.update ({'age': 29, 'dob': '15 -sep-1971 '}) пользователи печати. # печатает. {'dob': '15 -sep-1971 ',' фамилия ':' Смит ',' возраст ': 29,' имя ':' Джон '}

Установите значение по умолчанию для ключа, используя установить по умолчанию(). Этот метод устанавливает значение для ключа, если сопоставление не существует. Возвращает текущее значение.

# не изменяет текущее значение. распечатать users.setdefault («имя», «Джейн») # печатает. Джон # устанавливает значение. print users.setdefault ('city', 'NY') # печатает. NY # Окончательное значение. пользователи печати. # печатает. {'фамилия': 'Смит', 'возраст': 27, 'имя': 'Джон', 'город': 'Нью-Йорк'}

Удаление элементов

Удалите отображения в словаре, используя дель оператор. Этот оператор ничего не возвращает.

Вы встретите KeyError если ключ не существует в словаре.

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} del users ['age'] пользователи печати. # печатает. {'фамилия': 'Смит', 'имя': 'Джон'}

Использовать поп () вместо этого, когда вы хотите вернуть удаленное значение.

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} print users.pop ('age') пользователи печати. # печатает. 27. {'фамилия': 'Смит', 'имя': 'Джон'}

Что делать, если вы хотите удалить ключ, если он существует, без возникновения ошибки, если он не существует? Вы можете использовать поп () и указать Никто для второго аргумента следующим образом:

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} users.pop ('foo', None) пользователи печати. # печатает. {'фамилия': 'Смит', 'возраст': 27, 'имя': 'Джон'}

И здесь есть одна строка для удаления набора ключей из словаря, не вызывая ошибки на несуществующих ключах.

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27, 'dob': '15 -sep-1971 '} map (лямбда x: users.pop (x, None), ['age', 'foo', 'dob']) пользователи печати.

Хотите удалить все ключи из словаря? Использовать Чисто() метод.

users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} users.clear () пользователи печати. # печатает. {}

Циклы с словарями Python

Python предоставляет много методы зацикливания Как работают циклы Do-While в компьютерном программированииЦиклы являются одним из первых типов управления, которые вы изучите в программировании. Вы, вероятно, знаете о циклах while и for, но что делает цикл do-while? Прочитайте больше над записями словаря. Выберите тот, который соответствует вашим потребностям.

Зацикливание на клавишах

  • Самый простой метод для обработки ключей (и, возможно, значений) в последовательности использует цикл в виде:
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} для k в пользователях: print k, '=>', users [k] # печатает. фамилия => Смит. возраст => 27. имя => Джон.
  • Используя метод iterkeys () работает точно так же, как и выше. Выберите, какую форму вы хотите использовать.
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} для k в users.iterkeys (): вывести k, '=>', users [k] # печатает. фамилия => Смит. возраст => 27. имя => Джон.
  • Третий метод извлечения и обработки ключей в цикле включает использование встроенной функции. ITER ().
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} для k в iter (пользователи): print k, '=>', users [k] # печатает. фамилия => Смит. возраст => 27. имя => Джон.
  • Когда вам нужен индекс обрабатываемого ключа, используйте перечисление () встроенная функция, как показано на рисунке.
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} для индекса введите enumerate (users): напечатать index, key, '=>', users [k] # печатает. 0 фамилия => Джон. 1 возраст => Джон. 2 имя => Джон.

Цикл по парам ключ-значение

  • Если вы хотите получить каждую пару ключ-значение одним вызовом, используйте iteritems ().
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} для k, v в users.iteritems (): выведите k, '=>', v. # печатает. фамилия => Смит. возраст => 27. имя => Джон.

Перебор значений

  • Метод itervalues ​​() может использоваться для перебора всех значений в словаре. Хотя этот метод выглядит как цикл, использующий значения(), он более эффективен, поскольку не извлекает все значения одновременно.
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} для значения в users.itervalues ​​(): вывести значение. # печатает. Смит. 27. Джон.

Извлечение массивов

Следующие методы описывают извлечение различной информации из словаря Python в виде массива. Полученный массив можно зациклить, используя обычные конструкции python. Однако имейте в виду, что возвращаемый массив может быть большим в зависимости от размера словаря. Так что может быть больше дорого (с памятью) обрабатывать эти массивы, чем с помощью методов итератора выше.

Один из случаев, когда допустимо работать с этими массивами, - это когда вам нужно удалять элементы из словаря, когда вы сталкиваетесь с нежелательными элементами. Работа с итератором при изменении словаря может вызвать RuntimeError.

  • Метод Предметы() возвращает массив кортежей ключ-значение. Вы можете перебрать эти пары ключ-значение, как показано:
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} для k, v в users.items (): выведите k, '=>', v. # печатает. фамилия => Смит. возраст => 27. имя => Джон.
  • Получить все ключи в словаре, используя метод клавиши ().
    users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27} печать users.keys () # печатает. ['фамилия', 'возраст', 'имя']

    Используйте возвращенный массив для циклического перебора ключей.

    для k в users.keys (): вывести k, '=>', users [k] # печатает. фамилия => Смит. возраст => 27. имя => Джон.
  • Аналогичным образом используйте метод значения() чтобы получить все значения в словаре.
    для значения в users.values ​​(): вывести значение. # печатает. Смит. 27. Джон. 

Как вы используете словари Python?

В этой статье мы постарались охватить наиболее распространенные варианты использования словарей python. Обязательно ознакомьтесь со всеми нашими другие статьи Python 10 основных примеров Python, которые помогут вам быстро освоитьсяЭта статья с основными примерами Python предназначена для тех, кто уже имеет некоторый опыт программирования и просто хочет как можно быстрее перейти на Python. Прочитайте больше даже для больше подсказок Python 5 курсов, которые приведут вас от новичка в Python к ProЭти пять курсов научат вас программированию на Python, одном из самых популярных языков. Прочитайте больше . Если у вас есть другие варианты использования, которые вы считаете нужными, сообщите нам об этом в комментариях ниже!

Кредиты изображений: viper345 / Shutterstock