Содержание
- 1 Доступ к элементам
- 2 Изменить значение
- 3 Цикл for по словарю
- 4 Тест на знание python
- 5 Длина словаря
- 6 Добавление элементов
- 7 Удаление элементов
- 8 Конструктор dict()
- 9 Метод clear()
- 10 Метод get()
- 11 Метод pop()
- 12 Метод popitem()
- 13 Метод keys()
- 14 Метод values()
- 15 Метод items()
- 16 Сортировка словаря по ключам
- 17 Практический пример в Python
- 18 Комментарии ( 0 ):
Сегодня я расскажу о таком типе данных, как словари, о работе со словарями, операциях над ними, методах, о генераторах словарей.
Словари в Python — неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.
Чтобы работать со словарём, его нужно создать. Создать его можно несколькими способами. Во-первых, с помощью литерала:
Во-вторых, с помощью функции dict:
В-третьих, с помощью метода fromkeys:
В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы списков.
Теперь попробуем добавить записей в словарь и извлечь значения ключей:
Как видно из примера, присвоение по новому ключу расширяет словарь, присвоение по существующему ключу перезаписывает его, а попытка извлечения несуществующего ключа порождает исключение. Для избежания исключения есть специальный метод (см. ниже), или можно перехватывать исключение.
Что же можно еще делать со словарями? Да то же самое, что и с другими объектами: встроенные функции, ключевые слова (например, циклы for и while), а также специальные методы словарей.
Словарь — неупорядоченная последовательность, гибким к изменениям и индексированным. В Python словари пишутся в фигурных скобках, и состоят из ключей и значений.
Создадим и выведем словарь:
Доступ к элементам
Вы можете получить доступ к элементам словаря ссылаясь на его ключевое название.
Получим значение по ключу “model” :
Существует так же метод под названием get() который даст вам тот же результат.
Изменить значение
Вы можете поменять значение указанного элемента ссылаясь на ключевое название.
Поменяем “year” на “2018”:
Цикл for по словарю
При проходе по словарю вы получите его ключи, но так же есть методы для возврата значений.
Выведем один за другим все ключи словаря:
Выведем значения словаря, один за одним:
Тест на знание python
Вы так же можете использовать функцию values() для возврата значений словаря:
Пройдем по ключам и значениям, используя функцию items() :
Длина словаря
Для того, чтобы определить сколько элементов есть в словаре, используйте метод len() .
Добавление элементов
Добавление элементов в словарь выполняется с помощью нового ключа:
Удаление элементов
Существует несколько методов удаления элементов из словаря.
Метод pop() удаляет элемент по ключу и возвращает его:
Метод popitem() удаляет последний элемент:
Ключевое слово del удаляет элемент по ключу:
Ключевое слово del может так же удалить полностью весь словарь:
Ключевое слово clear() очищает словарь:
Конструктор dict()
Вы так же можете использовать конструктор dict() для создания нового словаря.
На прошлом уроке, мы научились создавать словари, добавлять и удалять элементы из словаря. Теперь нужно научиться работать со словарями, что-то с ними делать. Для полноценной работы со словарями в Python существует много полезных методов. Некоторые из них, мы сейчас рассмотрим.
Метод clear()
Метод clear() удаляет все элементы из словаря и не принимает никаких параметров.
my_count = <
10: ‘десять’,
11: ‘одиннадцать’,
12: ‘двенадцать’,
13: ‘тринадцать’
>
<> // возвращает пустой словарь
Метод get()
Метод get() возвращает значение по указанному ключу в параметрах. Название ключа всегда должно быть уникальным. В случае обращения по несуществующему ключу, Python вернет значение None. С помощью метода get(), можно проверять, есть ли такой ключ в словаре. И если есть, то мы получим значение по ключу.
first_count = <
14: ‘четырнадцать’,
15: ‘пятнадцать’,
16: ‘шестнадцать’
>
пятнадцать // выведет на экран
Метод pop()
В параметрах метода pop() передается ключ, а возвращается значение.
second_count = <
17: ‘семнадцать’,
18: ‘восемнадцать’,
19: ‘девятнадцать’
>
семнадцать // распечаталось на экране
Из списка удалилась пара целиком. Метод pop() удаляет элемент из словаря, ключ которого, передается в параметрах. Попытка передать элемент без параметра или с несуществующим параметром приведет к возникновению ошибки.
Метод popitem()
Метод popitem() не принимает никаких параметров и удаляет из словаря случайное значение. При каждом обращении, удаляет новый элемент случайным образом.
third_count = <
20: ‘двадцать’,
21: ‘двадцать один’,
22: ‘двадцать два’
>
(22, ‘двадцать два’) // возвращает случайный элемент
Посмотрим, что осталось в словаре:
Метод keys()
При помощи метода keys(), можно получить все ключи из словаря.
fourth_count = <
23: ‘двадцать три’,
24: ‘двадцать четыре’,
25: ‘двадцать пять’
>
dict_keys([23, 24, 25]) // вывод на экран
Метод values()
При помощи метода values(), можно получить все значения ключей из словаря.
fifth_count = <
26: ‘двадцать шесть’,
27: ‘двадцать семь’,
28: ‘двадцать восемь’
>
// Вывод всех значений
dict_values([‘двадцать шесть’, ‘двадцать семь’, ‘двадцать восемь’])
Метод items()
Метод items() возвращает все элементы "ключ-значение" из словаря.
sixth_count = <
29: ‘двадцать девять’,
30: ‘тридцать’,
31: ‘тридцать один’
>
// Вывод всех элементов
dict_items([(29, ‘двадцать девять’), (30, ‘тридцать’), (31, ‘тридцать один’)])
Сортировка словаря по ключам
Мы создали словарь age, состоящий из пар: ключ (имя) — значение (возраст). Функция sorted пройдется в цикле for и отсортирует ключи (имена) по алфавиту.
age = <
‘Lorens’: 29,
‘Viktor’: 30,
‘Alex’: 25
>
for i in sorted(age):
print(i,age[i])
Alex — 25
Lorens — 29
Viktor — 30
Практический пример в Python
У нас есть список с чередованием строк и чисел. Необходимо из списка создать словарь, где ключами будут строки, а значениями — списки из чисел.
cars_list = [‘volvo’, 1995, 5,’audi’, 2019, 4, ‘mazda’, 2010]
# Создадим пустой словарь
cars_dict = <>
# Переменная с пустым значением для обнаруженных строк
place_str = None
# Перебор элементов из списка в цикле с целью выяснить, текущий элемент строка или число. Если строка, то выполняется первый блок условия if (создание списка из чисел в качестве значений словаря), если число, то выполнится второй блок (else).
for element in cars_list:
if(type(element) == str):
cars_dict(element) = []
place_str = element
else:
cars_dist[place_str].append(element) # добавление элемента в пустой список
print(cars_dist)
# Создался словарь с парами "ключ — значение"
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2019 Русаков Михаил Юрьевич. Все права защищены.