Б41 Чистый Python. Тонкости программирования для профи. Спб.: Питер



Download 6,94 Mb.
Pdf ko'rish
bet58/80
Sana24.02.2022
Hajmi6,94 Mb.
#212875
1   ...   54   55   56   57   58   59   60   61   ...   80
Bog'liq
978544610803 Chisty Python Tonko

AttributeError: 
"'frozenset' object has no attribute 'add'" 
# Множества frozenset хешируемы и могут 
# использоваться в качестве ключей словаря: 
>>> d = { frozenset({1, 2, 3}): 'привет' } 
>>> d[frozenset({1, 2, 3})] 
'привет'
collections .Counter — мультимножества
Класс 
collections.Counter
стандартной библиотеки Python реализует 
тип «мультимножество» (или «мешок»), который допускает неоднократ-
ное появление элемента в множестве
2
.
1
См. документацию Python «frozenset»: 
https://docs .python .org/3/library/stdtypes .html#frozenset
2
См. документацию Python «collections.Counter»: 
https://docs .python .org/3/library/collections .
html#counter-objects


184 Глава 5 • Общие структуры данных Python
Это бывает полезно, если вам нужно вести учет не только того, при-
надлежит ли элемент множеству, но и того, сколько раз он был включен 
в множество:
>>> from collections import Counter 
>>> inventory = Counter() 
>>> loot = {'клинок': 1, 'хлеб': 3} 
>>> inventory.update(loot) 
>>> inventory 
Counter({'клинок': 1, 'хлеб': 3}) 
>>> more_loot = {'клинок': 1, 'яблоко': 1} 
>>> inventory.update(more_loot) 
>>> inventory 
Counter({'клинок': 2, 'хлеб': 3, 'яблоко': 1})
Приведу одно предостережение относительно класса 
Counter
: следует со-
блюдать осторожность во время подсчета количества элементов в объекте 
Counter
. В результате вызова функции 
len()
возвращается количество 
уникальных элементов в мультимножестве, тогда как общее количество 
элементов может быть получено с использованием функции 
sum
:
>>> len(inventory) 
# Количество уникальных элементов 
>>> sum(inventory.values()) 
# Общее количество элементов 
Ключевые выводы
‰
‰
Множество является еще одной полезной и широко используемой 
структурой данных, включенной в Python и ее стандартную библио-
теку.
‰
‰
Используйте встроенный тип 
set
, когда вы хотите получить изменя-
емое множество.
‰
‰
Объекты 
frozenset
хешируемы и могут использоваться в качестве 
словаря или ключей множества.
‰
‰
Класс 
collections.Counter
реализует структуры данных «мультимно-
жество», или «мешок».


5 .5 . Стеки (с дисциплиной доступа LIFO) 185
5 .5 . Стеки (с дисциплиной доступа LIFO)
Стек представляет собой коллекцию объектов, которая поддерживает бы-
струю семантику доступа «последним пришел — первым ушел» (LIFO — last 
in, first out) для вставок и удалений. В отличие от списков или множеств, 
стеки, как правило, не допускают произвольного доступа к объектам, 
которые они содержат. Операции вставки и удаления также нередко на-
зываются вталкиванием (push) и выталкиванием (pop).
Полезной аналогией для стековой структуры данных из реального мира 
является стопка тарелок:
Новые тарелки добавляются на вершину стопки . И поскольку тарелки 
дорогие и тяжелые, можно взять только самую верхнюю тарелку (метод 
«последним пришел — первым ушел») . Чтобы добраться до тарелок
которые находятся внизу стопки, необходимо поочередно удалить все 
тарелки, которые находятся выше .
Стеки и очереди похожи. Обе эти структуры данных являются линей-
ными коллекциями элементов, и разница между ними состоит в порядке 
доступа к элементам.
В случае с 

Download 6,94 Mb.

Do'stlaringiz bilan baham:
1   ...   54   55   56   57   58   59   60   61   ...   80




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish