Python Словари

Python Словари — очень удачный тип данных.

Python Словари — это, по сути дела, двойной список, то есть список, состоящий из двух частей: в первой части размещаются ключи, а во второй — соответствующие им значения.

Название Словари считаю не совсем удачным, но создателю языка виднее, поэтому вынужден с ним согласиться и прекратить критику.

Привожу простейший пример Словаря:

dict — словари. Тип данных dict аналогичен ассоциативным массивам в других языках программирования:
>>> type( {«x»: 5, «у»: 20} )
<class ‘dict’>

Чтобы познакомиться со Словарями, набираем команду help(dict):

>>> help(dict)
Help on class dict in module builtins:

class dict(object)
| dict() -> new empty dictionary
| dict(mapping) -> new dictionary initialized from a mapping object’s
| (key, value) pairs
| dict(iterable) -> new dictionary initialized as if via:
| d = {}
| for k, v in iterable:
| d[k] = v
| dict(**kwargs) -> new dictionary initialized with the name=value pairs
| in the keyword argument list. For example: dict(one=1, two=2)
|
| Methods defined here:
|
| __contains__(self, key, /)
| True if D has a key k, else False.
|
| __delitem__(self, key, /)
| Delete self[key].
|
| __eq__(self, value, /)
| Return self==value.
|
| __ge__(self, value, /)
| Return self>=value.
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __getitem__(…)
| x.__getitem__(y) <==> x[y]
|
| __gt__(self, value, /)
| Return self>value.
|
| __init__(self, /, *args, **kwargs)
| Initialize self. See help(type(self)) for accurate signature.
|
| __iter__(self, /)
| Implement iter(self).
|
| __le__(self, value, /)
| Return self<=value.
|
| __len__(self, /)
| Return len(self).
|
| __lt__(self, value, /)
| Return self<value.
|
| __ne__(self, value, /)
| Return self!=value.
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
|
| __repr__(self, /)
| Return repr(self).
|
| __setitem__(self, key, value, /)
| Set self[key] to value.
|
| __sizeof__(…)
| D.__sizeof__() -> size of D in memory, in bytes
|
| clear(…)
| D.clear() -> None. Remove all items from D.
|
| copy(…)
| D.copy() -> a shallow copy of D
|
| fromkeys(iterable, value=None, /) from builtins.type
| Returns a new dict with keys from iterable and values equal to value.
|
| get(…)
| D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
|
| items(…)
| D.items() -> a set-like object providing a view on D’s items
|
| keys(…)
| D.keys() -> a set-like object providing a view on D’s keys
|
| pop(…)
| D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
| If key is not found, d is returned if given, otherwise KeyError is raised
|
| popitem(…)
| D.popitem() -> (k, v), remove and return some (key, value) pair as a
| 2-tuple; but raise KeyError if D is empty.
|
| setdefault(…)
| D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
|
| update(…)
| D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
| If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
| If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
| In either case, this is followed by: for k in F: D[k] = F[k]
|
| values(…)
| D.values() -> an object providing a view on D’s values
|
| ———————————————————————-
| Data and other attributes defined here:
|
| __hash__ = None

Привожу подробную информацию о Словарях из справочника Бизли:

Словари

Словарь – это ассоциативный массив, или таблица хешей, содержащий объекты, индексированные ключами. Чтобы создать словарь, последовательность элементов необходимо заключить в фигурные скобки ({}), как показано ниже:
stock = { “name” : “GOOG”, “shares” : 100, “price” : 490.10 }

Доступ к элементам словаря осуществляется с помощью оператора индексирования по ключу:
name = stock[“name”] value = stock[“shares”] * stock[“price”]

Добавление или изменение объектов в словаре выполняется следующим способом:
stock[“shares”] = 75 stock[“date”] = “June 7, 2007”

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

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

Кроме того, словари могут использоваться, как контейнеры, позволяющие быстро выполнять поиск в неупорядоченных данных. В качестве примера ниже приводится словарь, содержащий цены на акции:
prices = { “GOOG” : 490.10, “AAPL” : 123.50, “IBM” : 91.50, “MSFT” : 52.13 }

Создать пустой словарь можно одним из двух способов:
prices = {} # Пустой словарь

prices = dict() # Пустой словарь

Проверку наличия элемента в словаре можно выполнить с помощью оператора in, как показано в следующем примере:
if “SCOX” in prices: p = prices[“SCOX”] else: p = 0.0

Данную последовательность действий можно выразить в более компактной форме:
p = prices.get(“SCOX”,0.0)

Чтобы получить список ключей словаря, словарь можно преобразовать в список:
syms = list(prices) # syms = [“AAPL”, “MSFT”, “IBM”, “GOOG”]

Для удаления элементов словаря используется инструкция del:
del prices[“MSFT”]

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

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

Осваивать использование Словарей можно по информации из 9-й главы учебника Python Прохоренок_704 (Прохоренок Н. А. «Python 3 и PyQt. Разработка приложений.» СПб., БХВ-Петербург, 2012., 704 с. с илл.)

Словари относятся к числу изменяемых контейнерных объектов

!…

Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В хороших комментариях сохраняю ссылку на сайт автора!

И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Python СловариПродолжение тут…

Deviz_15

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.