دیکشنری در پایتون
در این جلسه از آموزش پایتون رایگان میخواهیم نحوه تعریف دیکشنری در پایتون را آموزش دهیم. دیکشنریها یک Data Structure دیگر هستند که برای ذخیرهسازی دادهها استفاده میشوند. دادهها در دیکشنری به صورت key:value ذخیره میشوند. در این جلسه شما با نحوه تعریف دیکشنری، اضافه کردن key:value به دیکشنری، تغییر مقادیر و حذف key:value آشنا خواهید شد. با هوسم همراه باشید…
دیکشنری در پایتون چیست؟
دیکشنری در پایتون، یک نوع داده (data Type) برای ذخیره داده است. دیکشنری مجموعهای از دادههای unorderd است. یعنی دادههایی که در آن ذخیره میکنیم، به همان ترتیبی که ما وارد میکنیم ذخیره نمیشوند. به همین جهت امکان این وجود ندارد که با اندیسدهی، مقادیر یک دیکشنری را برداریم! پس چطور میتوانیم به مقادیری که در دیکشنری ذخیره میکنیم، دسترسی داشته باشیم؟ بعدا خواهید دید…
دادهها به صورت جفتهای key:value در دیکشنری ذخیره میشوند. هر جفت key:value، مقدار key را به value نگاشت میکند. دیکشنری نیز مانند لیستها قابل تغییر هستند. شما به راحتی میتوانید به یک دیکشنری یک جفت key:value اضافه کنید. دادههایی که در یک دیکشنری ذخیره میشوند نیز همانند لیستها میتوانند ناهمگن باشند. یعنی مثلا یک عدد داشته باشیم و یک رشته! در ادامه با دیکشنری در پایتون بیشتر آشنا خواهیم شد.
چطور یک دیکشنری در پایتون تعریف کنیم؟
برای تعریف یک دیکشنری در پایتون از آکولاد { } میتوان استفاده کرد. شما به راحتی با نوشتن key:value ها داخل یک آکولاد و جدا کردن آنها با کاما میتوانید یک دیکشنری تعریف کنید. در شکل زیر نحوه تعریف دیکشنری در پایتون نشان داده شده است:
اما مقادیر key و value چه هستند؟ با چند مثال این مسئله روشن خواهد شد…
مثال 1: ذخیره نام کشورها و پایتخت آنها در دیکشنری
در این بخش ما میخواهیم پایتخت کشورهای ایران، کانادا و چین را در یک دیکشنری به نام countries ذخیره کنیم. برای این کار کافی است بنویسیم:
countries = { 'Iran': 'Tehran', 'Canada': 'Ottawa', 'China': 'Beijing' } print(countries)
با نمایش دیکشنری که ساختیم، خواهیم داشت:
{'Iran': 'Tehran', 'Canada': 'Ottawa', 'China': 'Beijing'}
مشاهده میکنید که نام کشورها و پایتختشان را با موفقیت در یک دیکشنری ذخیره کردیم!
مثال 2: ذخیره نام ، نمرهها و معدل دانشآموزان در دیکشنری
در این مثال میخواهیم نمرهها و معدل Kate، Tom و Sara را در یک دیکشنری به نام grades ذخیره کنیم. نمرهها به شکل زیر هستند:
حالا میخواهیم نام، نمرهها و معدل را در یک دیکشنری بگذاریم. به این منظور کافی است بنویسیم:
grades = { 'Kate': [83, 91, 67, 83.34], 'Tom': [89, 59, 64, 70.67], 'Sara': [53, 90, 61, 68] } print(grades)
مشاهده میکنید که این بار value-ها، یک لیست هستند. با پرینت دیکشنری که تعریف کردیم ، خواهیم داشت:
{'Kate': [83, 91, 67, 83.34], 'Tom': [89, 59, 64, 70.67], 'Sara': [53, 90, 61, 68]}
خب تا اینجا با ساختن دیکشنری در پایتون آشنا شدید. در بخشهای بعدی کار با دیکشنریها را خواهید آموخت…
اضافه کردن مقدار به دیکشنری
اضافه کردن یک key: value به دیکشنری ساده است کافی است بنویسیم: dict_name(key) = value. مثلا فرض کنید بخواهیم پایتخت هند را نیز به دیکشنری countries اضافه کنیم. برای این کار کافی است بنویسید:
countries['India'] = 'Delhi' print(countries)
کد بالا را اجرا کنید:
{'Iran': 'Tehran', 'Canada': 'Ottawa', 'China': 'Beijing', 'India': 'Delhi'}
مشاهده میکنید که نام کشور هند و پایتختش به دیکشنری countries اضافه شده است.
استخراج یک مقدار از دیکشنری
برای استخراج یک مقدار از دیکشنری نمیتوان از اندیسدهی استفاده کرد. برای استخراج مقدار از دیکشنری باید از key-ها استفاده کنید. یعنی مقدار key را میدهیم و مقدار value را تحویل میگیریم! به همین راحتی. مثلا اگر بخواهیم نمرات Sara را در دیکشنری grades بیابیم کافی است بنویسیم:
sara_grades = grades['Sara'] print(sara_grades)
با اجرای کد بالا خواهیم داشت:
[53, 90, 61, 68]
مشاهده میکنید که نمرات Sara در خروجی نمایش داده شدهاند. حالا اگر یک key را وارد کنیم که در دیکشنری نباشد چه اتفاقی میافتد؟ مثلا نمرههای Jack را بخواهیم ولی نمره او در دیکشنری grades ثبت نشده است. ببینیم چه میشود:
grades['jack']
Traceback (most recent call last): File "C:\Program Files\Python37\lib\site-packages\IPython\core\interactiveshell.py", line 3343, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-3-91d251c2f5cf>", line 1, in <module> grades['jack'] KeyError: 'jack'
مشاهده میکنید که اگر key در دیکشنری وجود نداشته باشد، با خطا مواجه میشویم.
تغییر value در دیکشنری
برای تغییر یک value در دیکشنری چه باید کرد. در دیکشنری بالا مثلا فرض کنید که نمره Sara اشتباه وارد شده باشد. چه میتوان کرد؟ مثلا نمره Sara باید به شکل [78, 61, 90, 83] باشد. به این منظور کافی است بنویسید:
grades['Sara'] = [83, 90, 61, 78] print(grades)
با اجرای کد بالا خواهیم دید:
{'Kate': [83, 91, 67, 83.34], 'Tom': [89, 59, 64, 70.67], 'Sara': [83, 90, 61, 78]}
مشاهده میکنید که مقادیر جدید جایگزین مقادیر قبلی شدهاند.
تغییر key در دیکشنری به صورت مستقیم امکانپذیر نیست!بررسی وجود یا عدم وجود key در دیکشنری
در بخش قبل دیدیم که اگر کلیدی را فراخوانی کنیم که در دیکشنری وجود نداشته باشد، با خطا مواجه خواهیم شد. بنابراین شاید نیاز باشد که قبل از استخراج مقدار متناظر با key در دیکشنری، ابتدا چک کنیم که اصلا آن key در دیکشنری وجود دارد یا خیر. برای بررسی وجود یا عدم وجود یک key در دیکشنری در پایتون، باید از کلیدواژه in استفاده کنیم. مثلا در مثالی که بخش قبل نوشتیم، میخواهیم چک کنیم که آیا کلیدواژه jack در دیکشنری grades وجود دارد یا خیر. برای این کار کافی است بنویسیم:
print('Jack' in grades)
در واقع این خط کد، از پایتون میپرسد “آیا Jack در دیکشنری grades هست؟”. پایتون میگوید:
False
یعنی Jack در دیکشنری شما نیست. به همین سادگی میتوانید وجود یا عدم وجود یک key در دیکشنری را در پایتون بررسی کنید.
لیست کردن key-های یک دیکشنری در پایتون
در پایتون این امکان وجود دارد که تمام key-های یک دیکشنری در پایتون را لیست کنید. برای این کار کافی است از دستور keys. استفاده کنید. مثلا برای استخراج تمام key-های موجود در دیکشنری grades کافی است بنویسید:
grades_keys = grades.keys() print(grades_keys)
با اجرای کد بالا خواهیم داشت:
dict_keys(['Kate', 'Tom', 'Sara'])
مشاهده میکنید که تمامی key-ها در خروجی نمایش داده شدهاند. اما خروجی از نوع dict-key است. با استفاده از type میتوانید این موضوع را یک بار دیگر بررسی کنید:
print(type(grades_keys))
<class 'dict_keys'>
مشاهده میکنید که خروجی از نوع dict-key است. کار کردن با این نوع متغیر زیاد آسان نیست. شاید ترجیح بدهید آن را به متغیر خوش قلقی مثل لیست تبدیل کنید. برای این کار کافی است بنویسید:
list_keys = list(grades_keys) print(type(list_keys))
<class 'list'>
مشاهده میکنید که با کد بالا، خروجی تبدیل به لیست شد تا کار کردن با آن راحتتر باشد.
لیست کردن value-های یک دیکشنری در پایتون
در بخش قبلی، key-های دیکشنری را استخراج کردیم. در این بخش میخواهیم value-ها را استخراج کنیم. برای این کار کافی است از .values() استفاده کنید. مثلا برای استخراج value-های دیکشنری grades، کافی است بنویسید:
grades_values = grades.values() print(grades_values)
dict_values([[83, 91, 67, 83.34], [89, 59, 64, 70.67], [83, 90, 61, 78]])
به این ترتیب value-ها در خروجی نمایش داده میشوند. مشابه بخش قبل میتوانیم خروجی را به لیست تبدیل کنیم که کار با آن آسانتر باشد:
list_values = list(grades_values) print(list_values)
[[83, 91, 67, 83.34], [89, 59, 64, 70.67], [83, 90, 61, 78]]
به این ترتیب خروجی تبدیل به لیست شد.
حذف مقدار از دیکشنری در پایتون
حذف key:value از دیکشنری
برای حذف یک جفت key:value از دیکشنری در پایتون، از دستور pop میتوان استفاده کرد. کافی است key را به دستور pop بدهید، آنگاه این دستور آن key و value متناظر با آن را حذف خواهد کرد. مثلا فرض کنید بخواهیم Sara و نمرهاتش را از grades پاک کنیم. برای این کار کافی است بنویسیم:
grades.pop('Sara') print(grades)
نتیجه اجرای کد بالا به شکل زیر است:
{'Kate': [83, 91, 67, 83.34], 'Tom': [89, 59, 64, 70.67]}
مشاهده میکنید که Sara و نمرههایش از دیکشنری حذف شدهاند.
حذف تمام عناصر دیکشنری
با استفاده از دستور clear میتوان تمام عناصر موجود در یک دیکشنری را حذف کرد. برای grades این کار را انجام میدهیم:
grades.clear() print(grades)
{}
مشاهده میکنید که با اعمال دستور clear بر دیکشنری grades، تمامی نمراتی که در آن ذخیره کرده بودیم از بین رفتند.
جمعبندی
در این پست، نحوه تعریف دیکشنری در پایتون را بررسی کردیم. انتظار میرود در پایان این جلسه بتوانید به راحتی با دیکشنریها کار کنید. یک دیکشنری تعریف کنید، مقداری به آن اضافه یا کم کنید یا مقادیرش را تغییر دهید. امیدوارم این آموزش مورد توجه شما قرار گرفته باشد. سوالات و نظرهای خود را در کامنت با ما به اشتراک بگذارید. به کامنتها در اسرع وقت پاسخ داده خواهد شد.
مطالب زیر را حتما مطالعه کنید
دستورهای پراستفاده pip
علامت تقسیم ، باقیمانده و خارج قسمت در پایتون
نصب کتابخانه matplotlib در پایتون
کوندا چیست
آموزش matplotlib در پایتون
آموزش کتابخانه numpy در پایتون
7 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام. امیدوارم حالتون خوب باشه.میشه بگید چرا وقتی توی Entry چیزی رو به فارسی مینویسم داخل فایل ذخیره نمیشه؟
با سلام
زمانی که مقادیر یک کلید در یک دیکشنری رو بصورت لیست تعریف می کنیم چه جوری میتونیم مثلا به مقدار اول یا دوم دسترسی داشته باشیم؟؟؟
سلام،
مثلا اگر دیکشنری grades = {‘Kate’: [83, 91, 67, 83.34]} باشه، میخواید 91 رو استخراج کنید؟ اگه سوالتون اینه میتونید بعد از اینکه value-ها رو گرفتید، مجددا اندیس دهی کنید. به این شکل:
grades[‘Kate’][1]
عالی بود عالی
سپاس🌹
با سلام آیا ممکنه با دادن مقدار value به پایتون key رو بگیریم ؟
سلام،
دستوری برای این کار وجود نداره ولی میتونید با تبدیل key-ها و value-ها به لیست به هدفتون برسید. لینک زیر رو ببینید:
لینک