دیکشنری(Dictionary) در پایتون
نوع داده دیکشنری Dictionary مجموعه ای است که نامرتب، قابل تغییر و اندیسی می باشد. در پایتون Dictionary های پایتون با براکت های فرفری نوشته شده است و دارای key و value هستند.
ایجاد و چاپ دیکشنری
|
1 2 3 4 5 6 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } print(thisdict) |
مقالات
دسترسی به آیتم ها دیکشنری
می توانید با مراجعه به نام کلید آن ، در داخل براکت های مربع ، به آیتم های یک دیکشنری دسترسی داشته باشید:
مثال مقدار کلید “model” را بدست آورید:
|
1 |
x = thisdict["model"] |
متدی نیز به نام get () وجود دارد که همان نتیجه را می دهد:
|
1 |
x = thisdict.get("model") |
تغییر مقادیر دیکشنری
می توانید با مراجعه به نام کلید آن ، در داخل براکت های مربع ، به آیتم های یک دیکشنری دسترسی داشته باشید:
مثال:
تغییر سال به 2018
|
1 2 3 4 5 6 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict["year"] = 2018 |
چرخیدن در Dictionary
می توان با استفاده از حلقه for بین dictionary بچرخید
هنگام حلقه زدن از طریق dictionary ، مقدار برگشت کلیدهای dictionary است ، اما متد هایی نیز برای بازگرداندن مقادیر وجود دارد.
مثال
همه اسامی اصلی را دردیکشنری ، یکی یکی چاپ می شوند:
|
1 2 |
for x in thisdict: print(x) |
چاپ تمام مقادیر دردیکشنری ، یک به یک:
|
1 2 |
for x in thisdict: print(thisdict[x]) |
همچنین می توانید از متد values() مقادیر دیکشنری را برگردانید:
|
1 2 |
for x in thisdict.values(): print(x) |
با استفاده از متد items() و بین کلید ها و مقادیر می تواند چرخید
|
1 2 |
for x, y in thisdict.items(): print(x, y) |
بررسی کردن اینکه آیا Key وجود دارد یا خیر
برای تعیین وجود Key مشخص در دیکشنری از کلمه کلیدی in استفاده کنید:
بررسی کنید “model” در دیکشنری موجود است:
|
1 2 3 4 5 6 7 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } if "model" in thisdict: print("Yes, 'model' is one of the keys in the thisdict dictionary") |
طول دیکشنری
برای تعیین تعداد آیتم (جفت هایkey-value ) دیکشنری ، از تابع len () استفاده کنید.
مثال:
تعداد آیتم های موجود در دیکشنری را چاپ کنید:
|
1 |
print(len(thisdict)) |
اضافه کردن آیتم ها به Dictionary
اضافه کردن یک آیتم به دیکشنری با استفاده از یک کلید اندیس جدید index key و اختصاص مقدار به آن انجام می شود:
|
1 2 3 4 5 6 7 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict["color"] = "red" print(thisdict) |
حذف آیتم ها Dictionary
چندین متد برای حذف آیتم ها ازدیکشنری وجود دارد:
متد pop() آیتم را با نام کلید مشخص شده حذف می کند:
|
1 2 3 4 5 6 7 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict.pop("model") print(thisdict) |
متد popitem () popitem آخرین مورد درج شده را حذف می کند (در نسخه های قبل از 3.7 ، یک مورد تصادفی به جای آن حذف می شود):
|
1 2 3 4 5 6 7 8 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict.popitem() print(thisdict) |
کلمه کلیدی del آیتم را با نام کلید مشخص شده حذف می کند:
|
1 2 3 4 5 6 7 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } del thisdict["model"] print(thisdict) |
متد clear() دیکشنری را پاک می کند:
|
1 2 3 4 5 6 7 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict.clear() print(thisdict) |
کپی کردن Dictionary
شما نمی توانید یک دیکشنری را به سادگی با تایپ کردن متن2 = dik1 کپی کنید ، زیرا:dick2 فقط یک مرجع برای dik1 خواهد بود ، و تغییرات ایجاد شده در D1 ، به طور خودکار در Dict2 نیز ایجاد می شود.
روش هایی برای ساختن کپی وجود دارد ، یک روش استفاده از متد داخلی پایتون است copy().
|
1 2 3 4 5 6 7 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } mydict = thisdict.copy() print(mydict) |
راه دیگر برای ساختن کپی استفاده از دستور توابع داخلی dict() است.
مثال
|
1 2 3 4 5 6 7 |
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } mydict = dict(thisdict) print(mydict) |
Dictionary تو در تو
یک دیکشنری همچنین می تواند شامل بسیاری از دیکشنری ها باشد ، به این دیکشنری تو در تو گفته می شود.
دیکشنری ایجاد کنید که شامل سه دیکشنری باشد:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
myfamily = { "child1" : { "name" : "Emil", "year" : 2004 }, "child2" : { "name" : "Tobias", "year" : 2007 }, "child3" : { "name" : "Linus", "year" : 2011 } } |
یا اگر می خواهید سه دیکشنری را که قبلاً به عنوان دیکشنری وجود دارد ، لانه سازی کنید:
سه دیکشنری ایجاد کنید ، سپس یک دیکشنری ایجاد کنید که شامل سه دیکشنری دیگر باشد:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
child1 = { "name" : "Emil", "year" : 2004 } child2 = { "name" : "Tobias", "year" : 2007 } child3 = { "name" : "Linus", "year" : 2011 } myfamily = { "child1" : child1, "child2" : child2, "child3" : child3 } |
سازنده dic()
همچنین می توان ازdict() برای ایجاد دیکشنری جدید استفاده کرد:
|
1 2 3 4 |
thisdict = dict(brand="Ford", model="Mustang", year=1964) # note that keywords are not string literals # note the use of equals rather than colon for the assignment print(thisdict) |
متدهای Dictionary
پایتون مجموعه ای از متدهای داخلی را دارد که می توانید از آنها در دیکشنری ها استفاده کنید.
| متد | توضیحات |
|---|---|
| clear() | تمام عناصر را از دیکشنری حذف می کند |
| copy() | نسخه کپی از دیکشنری را برمی گرداند |
| fromkeys() | یک دیکشنری را با کلیدها و مقدار مشخص شده برمی گرداند |
| get() | مقدار کلید مشخص شده را برمی گرداند |
| items() | لیستی را که حاوی یک tuple برای هر جفت مقدار کلیدی است ، برمی گرداند |
| keys() | لیستی از کلیدهای دیکشنری را برمی گرداند |
| pop() | عنصر را با کلید مشخص شده حذف می کند |
| popitem() | آخرین جفت key-value درج شده را حذف می کند |
| setdefault() | مقدار کلید مشخص شده را برمی گرداند. اگر کلید وجود ندارد: کلید را با مقدار مشخص شده وارد کنید |
| update() | دیکشنری را با جفت های key-value مشخص شده به روز کنید |
| values() | لیستی از تمام مقادیر موجود در دیکشنری را برمی گرداند |
مطالب زیر را حتما مطالعه کنید
آموزش پایتون ( Python )
دستور if و else در پایتون Python
مجموعه ها (set) در پایتون python
داده Tuple تاپل در پایتون
عملگرهای پایتون Python operator
حلقه ها در پایتون
3 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام سایت تر و تمیزی دارین. یه مشکل دیدم گفتم بگم بهتون.
کدهاتون یه مشکلی داره:
نمایش کاراکتر “]” به صورت [ هستش.
پیشنهاد: بهتره به جای افزونهی cryon از کتابخونهی prismjs استفاده کنین. هم راحتتره هم قشنگتر دیده میشه.
موفق باشین
یه پیشنهاد دیگه هم دارم:
قسمت «مطالب زیر را حتما مطالعه فرمایید» ارتفاع اسلایدها با هم مساوی نیست. میتونین با کد زیر درستش کنین:
// این برای ارتفاع
.blog-loop-inner {
height: 100%;
}
// اینم برای فاصله با نقطههای اسلایدر
.owl-carousel .owl-stage {
margin-bottom: 1rem;
}
تشکر