collections.OrderedDict – به یاد داشته
پایتون شامل یک زیرکلاس dict تخصصی است که ترتیب درج کلیدهای اضافه شده به آن را به خاطر می آورد: collections.OrderedDict. 3 ترتیب درج کلیدها در حالی که نمونه های استاندارد dict ترتیب درج کلیدها را حفظ می کنند CPython 3.6 و بالاتر، این فقط یک اثر جانبی اجرای CPython است و در مشخصات زبان تعریف نشده است. برای کارکرد الگوریتم شما مهم است، بهتر است با آن ارتباط برقرار کنید به هر حال، OrderedDict بخشی داخلی از زبان اصلی نیست به وضوح با استفاده از کلاس OrderDict. کتابخانه>>> import collections و باید از ماژول مجموعه ها در استاندارد وارد شود >>> d = collections.OrderedDict(one=1, two=2, three=3) OrderedDict([(‘one’, 1), (‘two’, 2), (‘three’, 3)]) >>> d >>> d[‘four’] = 4 OrderedDict([(‘one’, 1), (‘two’, 2), >>> d (‘three’, 3), (‘four’, 4)]) odict_keys([‘one’, ‘two’, ‘three’, ‘four’])collections.defaultdict – مقادیر پیش فرض را برگردانید برای کلیدهای گمشده >>> d.keys() کلاس defaultdict یکی دیگر از زیر کلاس های فرهنگ لغت است که می پذیرد قابل فراخوانی در سازنده آن که مقدار بازگشتی آن استفاده می شود اگر a این میتواند در تایپ کردن شما صرفهجویی کند و قصد برنامهنویس را ایجاد کند واضح تر، در مقایسه با استفاده از متدهای get() یا گرفتن a کلید درخواستی یافت نمی شود.5 استثنای KeyError در دیکشنری های معمولی.>>> dd = defaultdict(list) >>> from collections import defaultdict # initializes it using the default factory, # Accessing a missing key creates it and >>> dd[‘dogs’].append(‘Rufus’) # i.e. list() in this example: >>> dd[‘dogs’].append(‘Mr Sniffles’)>>> dd[‘dogs’] >>> dd[‘dogs’].append(‘Kathrin’) [‘Rufus’, ‘Kathrin’, ‘Mr Sniffles’]فرهنگ لغت به عنوان یک نقشه برداری منفرد ساختار داده collections.ChainMap چندین فرهنگ لغت را در یک نقشه برداری واحد گروه بندی می کند. یکی یکی تا زمانی که کلید پیدا شود. درجها، بهروزرسانیها و حذفها فقط بر اولین نگاشت اضافه شده به زنجیره تاثیر می گذارد.>>> from collections import ChainMap >>> dict1 = {‘one’: 1, ‘two’: 2} >>> dict2 = {‘three’: 3, ‘four’: 4} >>> chain = ChainMap(dict1, dict2) >>> chain ChainMap({‘one’: 1, ‘two’: 2}, {‘three’: 3, ‘four’: 4}) # ChainMap searches each collection in the chain # from left to right until it finds the key (or fails): >>> chain[‘three’] 3 >>> chain[‘one’] 1 >>> chain[‘missing’] KeyError: ‘missing’type.MappingProxyType – لفافی برای ساخت دیکشنری های فقط خواندنی collections.ChainMap – جستجوی چندگانه MappingProxyType یک بسته بندی در اطراف یک فرهنگ لغت استاندارد است که یک نمای فقط خواندنی در دادههای دیکشنری پیچیده ارائه میکند.7 این کلاس در Python 3.3 اضافه شده است و میتوان از آن برای ایجاد غیرقابل تغییر استفاده کرد. به عنوان مثال، اگر بخواهید یک فرهنگ لغت دارای حالت داخلی را از یک کلاس یا ماژول برگردانید، در حالی که نوشتن را دلسرد می کنید، می تواند مفید باشد. دسترسی به این شی استفاده از MappingProxyType به شما امکان می دهد اینها را قرار دهید بدون نیاز به ایجاد یک کپی کامل از فرهنگ لغت، محدودیتهایی وجود دارد. >>> from types import MappingProxyType نسخه های پروکسی دیکشنری ها >>> read_only = MappingProxyType(writable) >>> writable = {‘one’: 1, ‘two’: 2} >>> read_only[‘one’] # The proxy is read-only: 1 TypeError: >>> read_only[‘one’] = 23 “‘mappingproxy’ object does not support item assignment” >>> writable[‘one’] = 42 # Updates to the original are reflected in the proxy: mappingproxy({‘one’: 42, ‘two’: 2})>>> read_only
قوانین ارسال دیدگاه در سایت