ویدیو آشنایی با orderedDict در پایتون

August 2019

دیکشنری ها در پایتون بدون ساختار هستند اما با استفاده از orderedDictها میتوانید دیکشنری هایی بسازید که ساختارمند هستند یعنی ترتیب ورود اطلاعات رو حفظ میکنند. خاصیت دیکشنری ها در پایتون به این شکل هستش که ترتیب ورود اطلاعات رو حفظ نکنند. ممکنه ترتیب آیتم هایی که در سیستم شما وجود داره با سیستم دیگه ای فرق کنه.

 

برای ایجاد کردن یک orderedDict میتونید به شکل زیر کار کنید:

from collections import OrderedDict

names = OrderedDict(jack=12, mark=43, anna=29)
print(names)

>> OrderedDict([('jack', 12), ('mark', 43), ('anna', 29)])

 

در پایتون orderedDictها متدهایی هم دارند که میتونید از اونها استفاده کنید. اولین متد popitem هستش که به شما اجازه میده یک آیتم رو حذف کنید:

names = OrderedDict(jack=12, mark=43, anna=29)
names.popitem()
print(names)

>> OrderedDict([('jack', 12), ('mark', 43)])

 

همینطور که میبینید popitem از آخر دیکشنری یک مقداری رو حذف کرد. اما اگه بخواید از اول دیکشنری مقدار حذف کنید میتونید مقدار last رو در popitem برابر با False قرار بدین:

names.popitem(last=False)
>> OrderedDict([('mark', 43), ('anna', 29)])

حالا دیگه از اول یک آیتم رو حذف کرده.

 

متد بعدی که میتونید استفاده کنید move_to_end هستش:

names.move_to_end('jack')
>> OrderedDict([('mark', 43), ('anna', 29), ('jack', 12)])

 

این متد یک کلید میگیره و اون رو منتقل میکنه به آخر دیکشنری. اما اگه بخواید یک کلید به اول دیکشنری منتقل کنید میتونید مقدار last رو برابر با False قرار بدین.

names.move_to_end('anna', last=False)
>> OrderedDict([('anna', 29), ('jack', 12), ('mark', 43)])

 

اگر ویدیو بالا را دوست داشتید پیشنهاد میکنیم به مطالب زیر هم سر بزنید:

دوره آموزش regex در پایتون

دوره آموزش پایتون

دوره آموزش Matplotlib

دوره آموزش Design Patterns در پایتون

دوره های آموزش پروژه محور و پیشرفته پایتون

چقدر زمان میبرد تا پایتون را یاد بگیریم؟

ارسال نظر

تلاش میکنم سوالات شما را در کمتر از یک روز پاسخ بدم

سیامک

October 2021

سلام استاد
من این جمله رو توی stackoverflow پیدا کردم
آیا دیگه نیازی به استفاده از این ماژول نداریم در ورژن های جدیدتر پایتون؟

Dictionaries are ordered in Python 3.6 (under the CPython implementation at least) unlike in previous incarnations

پاسخ به نظر


امیرحسین بیگدلو

October 2021

سلام
هنوز هم لازمه. چون ویژگی‌های دیگه هم داره.

shayan

July 2021

سلام
دیگ از پایتون 3.5 ب بعد الان از OrderedDict ها استفاده ای میشه؟
لازمه یادش بگیریم؟

پاسخ به نظر