کار با دیکشنری در پایتون
در زبان برنامه نویسی پایتون ساختار دادههای (Data Structure) مختلفی وجود دارد که یکی از پرکاربردترین آنها دیکشنری dictionary است. در این نوع داده میتوانید دادهها را به صورت key-value ذخیره کنید. مقادیر این دو میتوانند هر نوع دادهای مثل رشته، عدد، شی یا آرایه باشند. بهتر است بدانید دیکشنری سنگ بنای پایتون حساب میشود و بسیاری از ویژگیهای این زبان برنامه نویسی از جمله کلاسها، ماژولها و آبجکتها در اصل dictionary بودند. در صورتی که به python علاقه دارید و میخواهید کار با دیکشنری در پایتون را به طور کامل یاد بگیرید، تا انتهای این نوشته همراه ما باشید.
البته اگر هنوز نمیدانید پایتون python چیست و چه ویژگیهایی دارد، توصیه میکنیم مقاله «زبان برنامه نویسی پایتون چیست» را در مکتب خونه مطالعه نمایید.
Python Dictionary چه ویژگیهایی دارد؟
در زبانهای برنامه نویسی برای ذخیره و نگهداری دادهها و دسترسی به آنها از ساختار دادههای مختلفی استفاده میکنند. در زبان Python نیز چهار نوع داده با نامهای تاپل (Tuple)، لیست (List)، دیکشنری (Dictionary) و مجموعه (Set) وجود دارد. هر کدام از این دادهها کاربردهای متفاوتی دارند که با توجه به نیاز پروژه مورد استفاده قرار میگیرند.
اگر به تازگی برنامهنویسی را شروع کردهاید، یادگیری نحوه کار با دیکشنری پایتون یکی از اولویتهای شما خواهد بود. قوانین و ویژگیهای Dict عبارتند از:
- دیکشنری بر خلاف لیست برای ذخیره سازی دادهها از ساختار خاصی استفاده نمیکند. بنابراین نمیتوان با استفاده از اندیس به مقادیر آنها دست پیدا کرد.
- کلیدهای این نوع داده باید خاص باشند و امکان استفاده از عبارتهای تکراری وجود ندارد.
- با کمک کلیدها در دیکشنری میتوان مقادیر یا همان دادهها را به دست آورد.
- برای کلیدها میتوان از رشته، اعداد صحیح، اعداد اعشاری و نوع داده تاپل استفاده کرد.
- مقادیر میتوانند هر نوع دادهای باشند.
- امکان استفاده از مقادیر تکراری برای کلید وجود دارند. در صورتی که از کلید تکراری استفاده کنید، مقدار دوم جایگزین مقدار اول خواهد شد.
- برای کلیدها نمیتوان از متغیر استفاده کرد و مقدار کلید باید ثابت باشد.
- دیکشنریها نیز مانند لیستها قابل تغییر هستند و میتوان مقادیر آنها را تغییر داد.
نکته: بهتر است بدانید Dictionary در لغت به معنای فرهنگ لغت است. به این دلیل که در لغتنامهها هر یک از واژهها با معادل خود در ارتباط هستند، به این نوع داده در پایتون، دیکشنری میگویند. این نوع داده کاربردهای بسیار گستردهای در برنامه نویسی دارد که یکی از مثالهای ساده آن، ساخت دفترچه تلفن است.
آموزش ساخت دیکشنری در پایتون
اولین چیزی که درباره نحوه کار با دیکشنری پایتون باید یاد بگیرید، نحوه ساخت آن است. برای ساخت Dict در پایتون از علامت باز و بسته آکولاد {} استفاده میشود. در داخل این آکولاد میتوانید مقادیر Key و value را تعریف کنید. آیتمها نیز با استفاده از کاما از یکدیگر جدا میشوند. همچنین برای جدا کردن Key و value باید از علامت دو نقطه استفاده کنید.
در مثال زیر میتوانید نمونهای از یک Dictionary را مشاهده نمایید.
person = {
“name”: “hamed”,
“job”: “copywriter”,
“car”: “Optima”,
“age”: 27,
“password”: 123456
}
نکته مهم: در داخل دیکشنری امکان تعریف نامحدود key:value وجود دارد؛ به شرطی که قوانین مطرح شده در بالا را رعایت کنید.
علاوه بر روش بالا، برای ساخت دیکشنری میتوانید از سازنده یا همان Constructor نیز استفاده کنید. برای اینکار لازم است تابع dict() را صدا زده و مقادیر key و value را در داخل آن تعریف نمایید. نحوه کار با دیکشنری پایتون و ساخت آن با سازنده به شکل زیر است.
Ages = dict (“ali”: 12 , “mohammad”: 20, “Hamed”: 27, “zahra”: 25)
دقت داشته باشید که هر دو این روشها برای ساخت dictionary کاملا مشابه هستند. بنابراین با هر کدام که راحت هستید، برای ساخت dict استفاده کنید.
نحوه کار با دیکشنری پایتون
تا اینجای آموزش توانستیم یک دیکشنری را با مقادیر دلخواه بسازیم. در این بخش قصد داریم نحوه کار کردن با دادههای داخل آن را بررسی کنیم.
1. نحوه دسترسی به مقادیر
اولین مرحله از نحوه کار با دیکشنری پایتون، فراخوانی و دسترسی به دادههای موجود در آن است. برای اینکار دو راه وجود دارد که عبارتند از:
روش اول: راحتترین و سادهترین راه استفاده از علامت [] و نوشتن کلید مورد نظر در داخل آن است. یعنی به جای نوشتن اندیس، کلید را مینویسیم. برای مثال:
Print (“Ali Ages is: ” + Ages[“ali”] )
خروجی این قطعه کد به شکل زیر خواهد بود.
Ali Ages is: 12
روش دوم: راه بعدی برای دسترسی به دادههای دیکشنری، استفاده از تابع get() است. این تابع نام کلید را گرفته و مقدار آن را بر میگرداند. برای مثال:
Print (“Mohammad Ages is: “ + Ages.get(“mohammad”))
خروجی این کد نیز درست مانند روش اول است و هیچ تفاوتی با یکدیگر ندارند.
Mohammad Ages is: 20
2. کار با دیکشنری پایتون و تغییر مقادیر آن
در صورتی که میخواهید مقادیر هر یک از کلیدها را تغییر دهید، ابتدا نام دیکشنری را نوشته و بعد از آن [] قرار داده و کلید مد نظر را داخل آن بنویسید. سپس یک مساوی نوشته و مقدار جدید را وارد نمایید. با اینکار، مقدار جدید کلید با مقدار قبلی آن در داخل دیکشنری عوض خواهد شد.
Ages[“zahra”] = 18
همچنین میتوانید به مقدار قبلی، یک مقدار جدید اضافه کنید. در مثال زیر، به سن کاربر سه واحد اضافه کردهایم.
Ages[“zahra”] = Ages[“zahra”] + 3
3. آشنایی با خطای KeyError
اگر هنگام کار با دیکشنری پایتون با خطای KeyError مواجه شدید، یعنی کلیدی را صدا زدهاید که در دیکشنری وجود ندارد. برای مثال:
Person = {‘name’: ‘vahid’ , ‘job’: ‘programmer’, ‘age’: 26}
Print (person[‘code’])
#keyError: ‘code’
از آنجایی که کلید code در داخل دیکشنری person وجود ندارد، برنامه با خطای keyError مواجه میشود.
4. اضافه کردن عضو جدید به دیکشنری
برای افزودن عنصر جدید به Dictionary، درست مانند تغییر مقدار کلیدها عمل میکنیم. در این حالت، اگر کلید در دیکشنری وجود نداشته باشد، کلید و مقدار آن ساخته خواهد شد.
Ages[“hoda”] = 32
از آنجایی که کلید hoda در دیکشنری Ages وجود ندارد، کلید و مقدار ایجاد میشود.
5. حذف عضوهای دیکشنری
قدم بعدی در نحوه کار با دیکشنری، حذف عناصر موجود در آن است. برای حذف عضو دو راه پیش روی خود دارید که عبارتند از:
روش اول: با استفاده از دستور del، کلید مورد نظر از دیکشنری حذف میشود.
Del Ages[“ali”]
بعد از نوشتن این دستور اگر دیکشنری را پرینت کنید، کلید ali را مشاهده نخواهید کرد.
روش دوم: متدی در زبان پایتون با نام pop() وجود دارد که با کمک آن میتوانید یک کلید را صدا زده و آن را حذف کنید.
Ages.pop(‘hamed’)
6. نحوه کار با دیکشنری پایتون و حذف کامل آن
در صورتی که میخواهید کل دیکشنری را حذف کنید، بعد از دستور del، نام دیکشنری را بنویسید.
Del Ages
7. حذف همه عضوهای دیکشنری به صورت یکجا
اگر به هر دلیلی نیاز دارید همه کلیدها و مقادیر آنها را به صورت یکجا حذف کنید، از متد clear() استفاده نمایید. در این حالت، دیکشنری باقی میماند و عناصر آن حذف میشود.
Ages.clear()
با پرینت کردن Ages هیچ چیزی نمایش داده نخواهد شد.
8. وجود یا عدم وجود کلید در دیکشنری
همانطور که اشاره کردیم، اگر یک کلید در Dictionary وجود نداشته باشد، با خطا مواجه میشویم. برای اینکه بدانید یک کلید در دیکشنری وجود دارد یا نه، از دستور in استفاده کنید. این دستور، کلید را بررسی کرده و در صورت وجود، True و در صورت عدم وجود، False برمیگرداند.
print (“hamed” in Ages)
از آنجایی که کلید hamed در دیکشنری Ages وجود دارد، True را برمیگرداند.
9. متدهای پرکاربرد دیکشنری در پایتون
علاوه بر متدهایی که در بالا معرفی کردیم، متدهای دیگری نیز برای کار با دیکشنری پایتون وجود دارد که ادامه برخی از آنها را معرفی خواهیم کرد.
- متد items: این مد اطلاعات Dictionary را به صورت لیستی از تاپلها برمیگرداند. اولین آیتم در این لیست، Key و آیتم دوم، Value است.
Ages.items()
- متد pop: متد pop کلید درخواستی را از دیکشنری حذف کرده و مقدار آن را برمیگرداند. در صورتی که کلید مورد نظر در دیکشنری وجود نداشته باشد، مقدار پیشفرض یعنی None برگردانده میشود.
Ages.pop(“ali”)
- متد Keys: این متد همه کلیدهای دیکشنری را بازیابی میکند.
Ages.keys()
- متد values: اگر میخواهید همه مقادیر دیکشنری را بازیابی کنید، از متد values استفاده نمایید.
Ages.values()
- متد update: از این متد برای ترکیب دو دیکشنری با یکدیگر استفاده میکنند.
Person1={“name”:”hoda”, “age”:12}
Person2={“job”:”programmer”, “code”:1234}
print(Person1.update(person2))
#output
{“name”:”hoda”, “age”:12, “job”:”programmer”, “code”:1234}
- متد popitem: با کمک این متد میتوانید آخرین آیتم دیکشنری را حذف کنید. در صورتی که دیکشنری هیچ عضوی نداشته باشد، با ارور KeyError مواجه خواهید شد.
Ages.popitem()
10. نحوه کار با دیکشنری پایتون و پیمایش در آیتمهای آن
برای استفاده از حلقه و پیمایش در آیتمهای آن دو راه وجود دارد که عبارتند از:
روش اول: استفاده از ویژگی items به شما کمک میکند تا به کلیدها و مقادیر آنها دسترسی پیدا کنید. بعد از پیمایش، هر آیتم دیکشنری به صورت تاپل در خواهد آمد که مقدار اول، key و مقدار دوم value است.
Ages = dict (“ali”: 12 , “mohammad”: 20, “Hamed”: 27, “zahra”: 25)
for item in ages.items():
print (item)
output#
(“ali”, 12)
(“mohammad”, 20)
(“hamed”, 27)
(“Zahra”, 25)
روش دوم: اگر میخواهید به صورت جداگانه بر روی کلید و مقادیر آنها پیمایش انجام دهید، از روش زیر استفاده کنید. در این روش، حرف k نماینده keys و حرف v نماینده value است.
for k, v in Ages.items():
print (k, v)
output#
ali 12
mohammad 20
نکته: اگر میخواهید فقط در کلیدها یا فقط در مقادیر پیمایش داشته باشید، به ترتیب از keys و values به جای items استفاده کنید.
-key
for keys in Ages.keys():
print(key)
-value
for value Ages.values():
print(value)
جمعبندی
در این نوشته سعی کردیم نحوه کار با دیکشنری پایتون و مهمترین توابع آن را با شما عزیزان به اشتراک بگذاریم. علاوه بر مواردی که مطرح شد، توابع دیگری نیز برای dictionary وجود دارد. برای مطالعه بیشتر در مورد این دیتا تایپ توصیه میکنیم به مستندات پایتون مراجعه نمایید.
در صورتی که میخواهید به زبان پایتون مسلط شوید، بهترین راهکار شرکت در دورههای آموزشی آنلاین است. در مکتب خونه دورههای مختلفی را برای پایتون تهیه کردهایم. با شرکت در این دورهها از صفر تا صد مفاهیم این زبان را یاد خواهید گرفت. در آخر نیز بعد از دریافت مدرک میتوانید وارد بازار کار شده و به کسب درآمد بپردازید.