دیکشنری‌ها

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Python-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳شروع کار
۴دستور زبان
۵توضیحات
۶متغیرها
۷انواع داده‌ها
۸اعداد
۹تبدیل نوع
۱۰رشته‌ها
۱۱Booleans
۱۲عملگرها
۱۳لیست‌ها
۱۴تاپل‌ها
۱۵مجموعه‌ها
۱۶دیکشنری‌ها
۱۷If...Else
۱۸حلقهٔ While
۱۹حلقهٔ For
۲۰توابع
۲۱Lambda
۲۲آرایه‌ها
۲۳کلاس‌ها / اشیاء
۲۴ارث‌بری
۲۵Iteratorها
۲۶دامنه
۲۷ماژول‌ها
۲۸تاریخ و زمان
۲۹JSON
۳۰RegEx
۳۱PIP
۳۲Try...Except
۳۳ورودی کاربر
۳۴قالب‌بندی رشته
مدیریت فایل
یادگیری ماشین
MySQL در پایتون
MongoDB در پایتون
مرجع پایتون
مرجع ماژول
چگونه در پایتون؟
مثال‌های پایتون

دیکشنری

دیکشنری یک collection نامرتب و اندیس دار است. در پایتون دیکشنری‌ها داخل آکولادها { } نوشته می‌شوند و کلید و مقدار دارند. [۱]

مثال

یک دیکشنری را ایجاد و چاپ می‌کند:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 print(thisdict)


مشاهدهٔ نتیجه


دسترسی به آیتم ها

می‌توانید با ارجاع زدن به نام کلیدها داخل براکت [ ] به آیتم های دیکشنری دسترسی داشته باشید:

مثال

مقدار کلید “model” را به دست می‌آورد:

x = thisdict["model"]


مشاهدهٔ نتیجه


همچنین متدی به نام get() وجود دارد که همان نتیجه را می‌دهد:

مثال

مقدار کلید “model” را به دست می‌آورد

x = thisdict.get("model")

مشاهدهٔ نتیجه


تغییر مقدارها

می توایند مقدار آیتم خاصی را با ارجاع زدن به نام کلید آن تغییر دهید:

مثال

“year” را به ۲۰۱۸ تغییر دهید:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 thisdict["year"] = 2018


مشاهدهٔ نتیجه


پیمایش داخل یک دیکشنری

می‌توانید با استفاده از حلقه for در دیکشنری پیمایش کنید:

هنگام پیمایش در دیکشنری، مقدارهای برگشت داده شده کلیدهای دیکشنری هستند اما متدهایی برای برگرداندن مقدارها هم وجود دارد.

مثال

همهٔ نام‌های کلید را در دیکشنری یک به یک چاپ می‌کند:

1 for x in thisdict:
2   print(x)


مشاهدهٔ نتیجه


مثال

همهٔ مقدارهای در دیکشنری یک به یک چاپ می‌کند:

1 for x in thisdict:
2   print(thisdict[x])


مشاهدهٔ نتیجه


مثال

همچنین می‌توانید از تابع values() برای برگرداندن مقدار یک دیکشنری استفاده کنید:

1 for x in thisdict.values():
2   print(x)


مشاهدهٔ نتیجه


مثال

با استفاده از تابع items() در بین کلیدها و مقدارها پیمایش کنید:

1 for x, y in thisdict.items():
2   print(x, y)


مشاهدهٔ نتیجه


بررسی وجود کلید

برای بررسی وجود یک کلید خاص در در دیکشنری از کلمه کلیدی in استفاده کنید:

مثال

وجود “model” در دیکشنری را بررسی کنید:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 if "model" in thisdict:
7   print("Yes, 'model' is one of the keys in the thisdict dictionary")


مشاهدهٔ نتیجه


طول دیکشنری

برای مشخص کردن تعداد آیتم‌ها (جفت‌های کلید-مقدار) در دیکشنری از متد len() استفاده می‌شود.

مثال

تعداد آیتم‌های دیکشنری را چاپ کنید:

print(len(thisdict))


مشاهدهٔ نتیجه


اضافه کردن آیتم ها

برای اضافه کردن به دیکشنری از یک کلید اندیس جدید و تحصیص مقدار به آن استفاده کنید:

مثال

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 thisdict["color"] = "red"
7 print(thisdict)


مشاهدهٔ نتیجه


حذف کردن آیتم ها

متدهای زیادی برای حذف کردن آیتم‌ها از دیکشنری وجود دارد:

مثال

متد pop() آیتم با نام کلید مشخص را حذف می‌کند:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 thisdict.pop("model")
7 print(thisdict)


مشاهدهٔ نتیجه


مثال

متد popitem() آخرین آیتم وارد شده را حذف می‌کند (در نسخه‌های قبل ۳٫۷، یک آیتم تصادفی را حذف می‌کند):

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 thisdict.popitem()
7 print(thisdict)


مشاهدهٔ نتیجه


مثال

کلمه کلیدی del آیتم با نام کلید مشخص را حذف می‌کند:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 del thisdict["model"]
7 print(thisdict)


مشاهدهٔ نتیجه


مثال

همچنین کلمه کلیدی del دیکشنری را بطور کامل حذف می‌کند:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 del thisdict
7 print(thisdict) #this will cause an error because "thisdict" no longer exists.


مشاهدهٔ نتیجه


مثال

کلمه کلیدی clear() دیکشنری را خالی می‌کند:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 thisdict.clear()
7 print(thisdict)


مشاهدهٔ نتیجه


کپی کردن دیکشنری

به سادگی نمی‌توانید یک دیکشنری را با تایپ کردن dict2 = dict1 کپی کنید زیرا dict2 تنها ارجاعی به dict1 خواهد بود و تغییرات ایجاد شده در dict1 بطور خودکار در dict2 نیز استفاده خواهد شد.

راه‌هایی برای ایجاد کپی وجود دارد، یکی از راه‌ها استفاده از متد داخلی دیکشنری copy() است.

مثال

با متد copy() یک کپی از دیکشنری ایجاد می‌کند:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 mydict = thisdict.copy()
7 print(mydict)


مشاهدهٔ نتیجه


راه دیگر برای ایجاد کپی استفاده از متد داخلی dict() است.

مثال

با متد dict() یک کپی از دیکشنری ایجاد می‌کند:

1 thisdict = {
2   "brand": "Ford",
3   "model": "Mustang",
4   "year": 1964
5 }
6 mydict = dict(thisdict)
7 print(mydict)


مشاهدهٔ نتیجه


دیکشنری های تودرتو

یک دیکشنری می‌تواند شامل چند دیکشنری باشد که دیکشنری‌های تودرتو نامیده می‌شود.

مثال

یک دیکشنری ایجاد می‌کند که شامل سه دیکشنری دیگر می‌شود:

 1 myfamily = {
 2   "child1" : {
 3     "name" : "Emil",
 4     "year" : 2004
 5   },
 6   "child2" : {
 7     "name" : "Tobias",
 8     "year" : 2007
 9   },
10   "child3" : {
11     "name" : "Linus",
12     "year" : 2011
13   }
14 }


مشاهدهٔ نتیجه


یا، اگر می‌خواهید سه دیکشنری موجود را به حالت تودرتو تبدیل کنید:

مثال

سه دیکشنری ایجاد کنید، سپس یک دیکشنری ایجاد کنید که شامل سه دیکشنری دیگر باشد:

 1 child1 = {
 2   "name" : "Emil",
 3   "year" : 2004
 4 }
 5 child2 = {
 6   "name" : "Tobias",
 7   "year" : 2007
 8 }
 9 child3 = {
10   "name" : "Linus",
11   "year" : 2011
12 }
13 
14 myfamily = {
15   "child1" : child1,
16   "child2" : child2,
17   "child3" : child3
18 }


مشاهدهٔ نتیجه


سازنده dict()

همچنین می‌توانید از سازنده dict() برای ایجاد یک دیکشنری جدید استفاده کنید:

مثال

1 thisdict = dict(brand="Ford", model="Mustang", year=1964)
2 # note that keywords are not string literals
3 # note the use of equals rather than colon for the assignment
4 print(thisdict)


مشاهدهٔ نتیجه


متدهای دیکشنری

پایتون مجموعه ای از متدهای داخلی برای کار با دیکشنری‌ها دارد.

متد تعریف
clear() همهٔ عنصرها را از دیکشنری حذف م یکند
copy() یک کپی از دیکشنری ایجاد می‌کند
fromkeys() یک دیکشنری با کلیدها و مقدارهای مشخص شده را برمی‌گرداند
get() مقدار یک کلید خاص را برمی‌گرداند
items() لیستی شامل تاپل‌های هر جفت کلید مقدار را برمی‌گرداند
keys() لیستی شامل کلیدهای دیکشنری را برمی‌گرداند
pop() عنصری با کلید خاص را برمی‌گرداند
popitem() آخرین جفت کلید-مقدار را حذف می‌کند
setdefault() مقدار یک کلید خاص را برمی‌گرداند. اگر کلید وجود نداشته باشد: کلید را با مقدار خاص اضافه می‌کند
update() دیکشنری را جفت‌های کلید-مقدار مشخص شده بروزرسانی می‌کند
values() لیستی از همهٔ مقدارها در دیکشنری برمی‌گرداند


منابع آموزشی