دیکشنریها
دیکشنری
دیکشنری یک collection نامرتب و اندیس دار است. در پایتون دیکشنریها داخل آکولادها { } نوشته میشوند و کلید و مقدار دارند. [۱]
مثال
یک دیکشنری را ایجاد و چاپ میکند:
1 thisdict = {
2 "brand": "Ford",
3 "model": "Mustang",
4 "year": 1964
5 }
6 print(thisdict)
دسترسی به آیتم ها
میتوانید با ارجاع زدن به نام کلیدها داخل براکت [ ] به آیتم های دیکشنری دسترسی داشته باشید:
مثال
مقدار کلید “model” را به دست میآورد:
x = thisdict["model"]
همچنین متدی به نام 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() | لیستی از همهٔ مقدارها در دیکشنری برمیگرداند |
منابع آموزشی