Python-рецепты. Словари
Примеры Python » Python для начинающих python словари, python список словарей, сортировка словаря python
Словарь – это второй самый гибкий встроенный тип после списков. Список представляет собой упорядоченную коллекцию, словарь же – неупорядоченную.
Можно выделить несколько отличительных характеристик словарей:
- Для доступа к ним используется не индекс, а ключ. Аналогично спискам, в словарях есть возможность получения доступа к элементам цикла по ключам.
- Для хранения словарей используется неотсортированный порядок, кроме того, допускается сохранение ключей в порядке, отличном от порядка их добавления.
- Аналогично список, в словаре могут быть вложенные словари. Значениями словаря могут быть объекты любого типа (heterogeneous). Ключ словаря – immutable тип может являться float, целым числом, строкой или кортежем, включающим указанные типы.
- Словарь имеет вид хеш-таблицы быстрого доступа.
- Аналогично спискам, словари не хранят непосредственно объекты, а только ссылки на них.
Понятие словаря
Словарь (dictionary) представляет собой хеш или ассоциативный массив. Он является неупорядоченным множеством пар ключей: значение и требование уникальности ключей. Двое фигурных скобок {} формируют пустой словарь. Отличительная особенность от последовательностей в том, что для получения доступа к элементам из словаря осуществляется при помощи ключа, а не индекса, сам же ключ может иметь любой тип, изменения ключом не допускаются.
С словарем проводится две основные операции – сохранение с указанным ключом, а также извлечение значения по нему. Инструмент del дает возможность удаления пары key: value.
Метод keys () для словарей используется с целью возвращения списка всех применяемых ключей в произвольном порядке. Чтобы отсортировать список необходимо пользоваться методом sort (). Чтобы определить наличие конкретного ключа следует пользоваться методом has key(), однако в 3-й версии он уже устаревший и вместо него следует пользоваться оператором in. Чтобы добавить в словарь новый объект не нужно проводить предварительные проверки: если у ключа дор этого уже было определенное значение, то произойдет его перезапись.
Как пример возьмем работу с электронным досье Васи Пупкина.
# создадим пустой словарь
data = {}
# или так
data = dict()
# определим его длину - 0
len(data)
# заполним данными - имя и фамилия
data = {'firstname': 'Vasya', 'lastname': 'Pupkin'}
# длина словаря определяется количеством ключей
# на данный момент - 2
len(data)
# добавим отчество
data['middlename'] = 'Vasilyevich'
# после женитьбы Васи обновляем поле фамилии и добавляем банковский счет
data.update({'lastname':'Gates', 'bank_account': 10000000})
# добавляем новым элементом словарь с данными жены...
data['wife'] = {'firstname': 'Annet', 'lastname': 'Gates', 'middlename': 'Billovna'}
# ... и загоняем в гараж приданое
data['garage'] = ['Jaguar', 'Toyota Camry']
# и еще одну машинку
data['garage'].append('Honda Civic')
# узнаем имя жены - Annet
print data['wife']['firstname']
# Вася хвастается друзьям
print data['bank_account']
# если нет элемента с нужным ключом,
# можно избежать ошибки
if 'bank_account' in data:
print data['bank_account']
else:
print 'no money'
# или так
print data.get('bank_account', 0)
# закрываем счет
del data['bank_account']
# распечатываем досье
for key in data:
print key, ':', data[key]
#### после распечатки выдаст следующее
# firstname : Vasya
# wife : {'middlename': 'Billovna', 'lastname': 'Gates', 'firstname': 'Annet'}
# middlename : Vasilyevich
# lastname : Gates
# garage : ['Jaguar', 'Toyota Camry', 'Honda Civic']
#### а само досье выглядит так
# {'firstname': 'Vasya', 'wife': {'middlename': 'Billovna', 'lastname': 'Gates',
# 'firstname': 'Annet'}, 'middlename': 'Vasilyevich', 'lastname': 'Gates',
# 'garage': ['Jaguar', 'Toyota Camry', 'Honda Civic']}
На этом, пожалуй, все.
Хотите приобрести современный телефон с хорошими характеристиками, по выгодной цене? Рекомендуем интернет-магазин Bestmobiles, здесь вы сможете купить оптом мобильные телефоны в Украине. В ассортименте огромный выбор устройств, радуют вкусные оптовые цены и удобные варианты доставки!