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

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

دیکشنری ها در پایتون بدون ساختار هستند اما با استفاده از 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 در پایتون

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

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

ویدیوهای مشابه



ارسال نظر


سیامک

3 سال قبل پاسخ به نظر

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

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

ارسال نظر



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

3 سال قبل

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

shayan

3 سال قبل پاسخ به نظر

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

ارسال نظر



مونگارد