ترتیب درج کلیدها
ترتیب درج کلیدها
پایتون شامل یک زیرکلاس 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 – مقادیر پیش فرض را برگردانید برای کلیدهای گمشده کلاس defaultdict یکی دیگر از زیر کلاس های فرهنگ لغت است که می پذیرد قابل فراخوانی در سازنده آن که مقدار بازگشتی آن استفاده می شود اگر a کلید درخواستی یافت نمی شود.5 >>> d.keys() این میتواند در تایپ کردن شما صرفهجویی کند و قصد برنامهنویس را ایجاد کند استثنای KeyError در دیکشنری های معمولی.>>> from collections import defaultdict واضح تر، در مقایسه با استفاده از متدهای get() یا گرفتن a # Accessing a missing key creates it and >>> dd = defaultdict(list) # i.e. list() in this example: # initializes it using the default factory, >>> dd[‘dogs’].append(‘Kathrin’) >>> dd[‘dogs’].append(‘Rufus’) >>> dd[‘dogs’].append(‘Mr Sniffles’)[‘Rufus’, ‘Kathrin’, ‘Mr Sniffles’]collections.ChainMap – جستجوی چندگانه >>> dd[‘dogs’] ساختار داده collections.ChainMap فرهنگ لغت های متعدد را در یک نگاشت واحد گروه بندی می کند. یکی یکی تا زمانی که کلید پیدا شود.
درجها، بهروزرسانیها و حذفها فقط بر اولین نگاشت اضافه شده به زنجیره تاثیر می گذارد.
>>> from collections import ChainMap فرهنگ لغت به عنوان یک نقشه برداری منفرد >>> dict2 = {‘three’: 3, ‘four’: 4} >>> dict1 = {‘one’: 1, ‘two’: 2} >>> chain >>> chain = ChainMap(dict1, dict2) ChainMap({‘one’: 1, ‘two’: 2}, {‘three’: 3, ‘four’: 4}) # from left to right until it finds the key (or fails): # ChainMap searches each collection in the chain 3 >>> chain[‘three’] >>> chain[‘one’] >>> chain[‘missing’] KeyError: ‘missing’type.MappingProxyType – لفافی برای ساخت 1 دیکشنری های فقط خواندنی MappingProxyType یک بسته بندی در اطراف یک فرهنگ لغت استاندارد است که یک نمای فقط خواندنی به داده های فرهنگ لغت پیچیده ارائه می دهد.کلاس در پایتون 3.3 اضافه شده است و می توان از آن برای ایجاد تغییرناپذیر استفاده کرد به عنوان مثال، اگر میخواهید یک خودروی فرهنگ لغت را که حالت داخلی دارد را از یک کلاس یا ماژول بازگردانید، در حالی که نوشتن را دلسرد میکنید، این میتواند مفید باشد. دسترسی به این شی استفاده از MappingProxyType به شما امکان می دهد اینها را قرار دهید بدون نیاز به ایجاد یک کپی کامل از فرهنگ لغت، محدودیتهایی وجود دارد.نسخه های پروکسی دیکشنری ها
قوانین ارسال دیدگاه در سایت