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

В этой статье мы познакомим вас с работой со словарем Python.
Создание словаря
Есть несколько способов создания словаря Python. Самое простое использует инициализацию скобок, с синтаксисом напоминает JSON Как получить Python и JavaScript для общения с помощью JSONСегодня я покажу вам, как использовать JSON для отправки данных из JavaScript в Python. Я расскажу, как настроить веб-сервер вместе со всем необходимым кодом. Прочитайте больше .
users = {'firstname': 'John', 'фамилия': 'Smith', 'age': 27}
Вы также можете использовать цифры в качестве ключей. Однако будьте осторожны, используя числа с плавающей запятой в качестве ключей, так как компьютер хранит их как приближения
Все, что вам нужно знать об оперативной памяти и управлении памятью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