نوع داده ای فرهنگ لغت (Dictionary) در پایتون (Python)

نوع داده ای فرهنگ لغت (Dictionary) در پایتون (Python)

زمان مطالعه

5 دقیقه

تعداد بازدید

73

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب
سامان محمدپور
در مورد نویسنده : موفقیت بستگی به تلاش هر شخص داره، هممون ب همون اندازه که تلاش کردیم موفق شدیم.

نوع داده ای فرهنگ لغت (Dictionary) در پایتون (Python)

نوع داده ای فرهنگ لغت (Dictionary) در پایتون (Python)

زمان مطالعه

5 دقیقه

تعداد بازدید

73

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب

در سه چهار مقاله قبل در مورد نوع های داده ای که مقادیر چندتایی را در خودشان ذخیره می کنند با شما مفصل صحبت کردیم.

نوع داده های لیست ها، tuple ها و set ها را برای شما شرح دادیم و حال به سراغ آخرین نوع از این نوع های داده ای یعنی فرهنگ لغت (Dictionary) ها آمدیم تا پرونده این نوع های داده ای را ببندیم.

نوع داده ای فرهنگ لغت برای ذخیره داده های چند مقداری به صورت key : value می باشد.

نوع داده ای فرهنگ لغت همه ویژگی های لیست ها را دارد جز اینکه مقدار تکراری نمی پذیرد.

نکته: در نسخه 3.6  پایتون و قبل تر از آن، این نوع داده ای مرتب نبود و در نسخه 3.7  پایتون به صورت مرتب شده تغییر کرد.

مقادیر نوع داده ای فرهنگ لغت درون یک جفت کورشه ({}) و در قالب key : value نوشته می شوند.

مثال: در زیر یک نوع داده ای فرهنگ لغت ایجاد و در خروجی چاپ شده است.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)

 

نوع داده ای فرهنگ لغت (Dictionary) در پایتون (Python)

 

آیتم های نوع داده ای dictionary

آیتم های این نوع داده ای ترتیبی، تغییر پذیر هستند و مقادیر تکراری قبول نمی کنند.

آیتم های این نوع داده ای در قالب key : value ارائه می شوند و با استفاده از نام key میتوان به آیتم های آن دسترسی پیدا کرد.

مثال: در زیر مقدار کلید “brand” را در خروجی چاپ می کند.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict["brand"])

 

آیتم های نوع داده ای dictionary در پایتون (Python)

 

ترتیبی یا بی نظم؟

نکته: همانطور که در بالا هم گفتیم در نسخه 3.6  پایتون و قبل تر از آن، این نوع داده ای مرتب نبود و در نسخه 3.7  پایتون به صورت مرتب شده تغییر کرد.

وقتی میگوییم نوع داده ای ترتیبی است به این معنی است که مقادیر و آیتم های آن به همان ترتیبی که تعریف شده اند در خروجی چاپ می شوند و نمی توان ترتیب آن ها را تغییر داد.

وقتی هم می گوییم نوع داده ای نا منظم است به این معنی است که نمیتوان با استفاده از ایندکس به مقادیر آن دسترسی پیدا کرد.

تغییر پذیر

نوع داده ای Dictionary تغییر پذیر هستند، به این معنی که پس از ایجاد این نوع داده ای می توان آیتم های آن را تغییر داد، آیتم جدیدی ایجاد کرد و یا حتی آیتمی از آن را حذف کرد.

مجاز نبودن آیتم های تکراری

نوع داده ای Dictionary نمی توانند دو آیتم با نام key یکسان داشته باشند. اگر این اتفاق بیوفتد و نام key یکسان در آیتم ها تعریف کنید آیتم تکراری مقدارش بازنویسی خواهد شد. به مثال زیر دقت کنید.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964,
  "year": 2020
}
print(thisdict)

 

مجاز نبودن آیتم های تکراری dictionaries در پایتون (Python)

 

طول Dictionary ها

برای به دست آوردن تعداد آیتم های این نوع داده ای از تابع len() استفاده می کنیم.

مثال: در این مثال تعداد آیتم های نوع داده ای Dictionary در خروجی چاپ شده است.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964,
  "year": 2020
}
print(len(thisdict))

 

طول Dictionary ها در پایتون (Python)

 

نوع های داده مجاز در Dictionaries

نوع های داده ای مجاز در Dictionaries می تواند شامل هر نوع داده ای باشد.

در مثال زیر ما برای تعریف آیتم های Dictionaries از چهار نوع رشته ای، عددی و بولی و لیست استفاده کردیم.

 

thisdict = {
  "brand": "Ford",
  "electric": False,
  "year": 1964,
  "colors": ["red", "white", "blue"]
}

 

نوع های داده مجاز در Dictionaries در پایتون (Python)

 

تابع type()

از دیدگاه پایتون، Dictionary ها به عنوان اشیا با نوع داده ای Dict تعریف می شوند.

 

<class 'dict'>

 

مثال: در این مثال نوع داده ای Dictionary زیر در خروجی چاپ می شود.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(type(thisdict))

 

تابع ()type نوع داده ای فرهنگ لغت در پایتون (Python)

 

دسترسی به آیتم های Dictionaries در پایتون (Python)

با مراجعه به نام key یک Dictionary در داخل یک جفت براکت می توانید به آیتم های آن دسترسی پیدا کنید.

مثال: در این مثال به آیتمی با کلید واژه “model” دسترسی پیدا کرده است.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
x = thisdict["model"]

 

دسترسی به آیتم های Dictionaries در پایتون (Python)

 

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

 

x = thisdict.get("model")

 

دسترسی به آیتم های Dictionaries در پایتون (Python) با متد ()get

 

دریافت key ها در Dictiionaries

متد keys() لیستی از تمام کلید های Dictionary را به ما می دهد.

مثال: در زیر لیست تمام key ها در Dictionary مورد نظر را برای ما برگشت می دهد.

 

x = thisdict.keys()

 

دریافت key ها در Dictiionaries در پایتون (Python)

 

لیست key ها نمای این نوع داده ای است، به این معنی که هر گونه تغییر در Dictionaries باعث ایجاد تغییر در لیست key ها می شود.

مثال: در این مثال آیتم جدیدی به Dictionary اضافه می شود و همین کار باعث بروز رسانی لیست key ها می شود.

 

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
x = car.keys()
print(x) #before the change
car["color"] = "white"
print(x) #after the change

 

دریافت key ها در Dictiionaries در پایتون (Python)

 

دریافت value ها در Dictiionaries

متد value() لیستی از تمام value های Dictionary را به ما می دهد.

مثال: در زیر لیست تمام value ها در Dictionary مورد نظر را برای ما برگشت می دهد.

 

x = thisdict.values()

 

دریافت value ها در Dictiionaries در پایتون (Python)

 

لیست value ها نمای نوع داده ای Dictionary است، به این معنی که هر گونه تغییر در Dictionaries باعث ایجاد تغییر در لیست value ها می شود.

مثال: در این مثال آیتم جدیدی به Dictionary اضافه می شود و همین کار باعث بروز رسانی لیست value ها می شود.

 

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
x = car.values()
print(x) #before the change
car["year"] = 2020
print(x) #after the change

 

دریافت value ها در Dictiionaries در پایتون (Python)

 

حتی اگر key مورد نظر وجود نداشته باشد، آن key و value را ایجاد می کند و لیست value ها می شود.

 

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
x = car.values()
print(x) #before the change
car["color"] = "red"
print(x) #after the change

 

دریافت value ها در Dictiionaries در پایتون (Python)

 

دریافت آیتم های Dictionaries

متد items() هر آیتم را در Dictionary به عنوان یک چندتایی (tuple) در یک لیست برمیگرداند.

مثال: در این مثال هر آیتم به عنوان یک جفت مقدار key : value برگشت داده می شود.

 

x = thisdict.items()

 

دریافت آیتم های Dictionaries در پایتون (Python)

 

لیست برگشتی نمای نوع داده ای Dictionary است، به این معنی که هر گونه تغییر در Dictionaries باعث ایجاد تغییر در لیست برگشتی می شود.

مثال: در Dictionary اصلی تغییر ایجاد می شود و همین باعث بروز رسانی کل لیست برگشتی می شود.

 

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
x = car.items()
print(x) #before the change
car["year"] = 2020
print(x) #after the change

 

دریافت آیتم های Dictionaries در پایتون (Python)

 

مثال: در این مثال آیتم جدیدی به لیست اضافه می شود و لیست برگشتی بروز می شود.

 

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
x = car.items()
print(x) #before the change
car["color"] = "red"
print(x) #after the change

 

دریافت آیتم های Dictionaries در پایتون (Python)

 

بررسی وجود key

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

مثال: در این مثال بررسی می کند که آیا key با نام “model” در Dictionary مورد نظر وجود دارد یا خیر، در صورت وجود رشته مورد نظر را در خروجی چاپ می کند.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
if "model" in thisdict:
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

 

بررسی وجود key یک Dictionary در پایتون (Python)

 

تغییر دادن آیتم های Dictionaries در پایتون (Python)

شما می توانید با مراجعه به نام key آن آیتم مقدار آن را تغییر دهید.

مثال: در این مثال سال را به 2018  تغییر می دهد.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["year"] = 2018

 

تغییر دادن آیتم های Dictionaries در پایتون (Python)

 

به روز رسانی Dictionaries

متد update() فرهنگ لغت را از مقادیری که در آرگومان داده شده به روز رسانی می کند

آرگومان باید حتما یک dictionary و یا یک شی قابل پیمایش ما فرمت قالب key : value باشد.

مثال: در این مثال سال ماشین را با متد update() تغییر می دهد.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.update({"year": 2020})

 

به روز رسانی (update) کردن آیتم های Dictionaries در پایتون (Python)

 

اضافه کردن به آیتم های Dictionary در پایتون (Python)

برای اضافه کردن یک آیتم جدید به این نوع داده ای باید یک key جدید تعریف کنید و value به آن اختصاص دهید.

مثال: در زیر یک آیتم جدید به نام “color” با مقدار “red” به dictionary اضافه شده است.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["color"] = "red"
print(thisdict)

 

اضافه کردن به آیتم های Dictionary در پایتون (Python)

 

شما همچنین می توانید از متد update() که در بالا گفته شد، برای اضافه کردن آیتم به Dictionaries استفاده کنید.

مثال: اضافه کردن آیتم جدید با متد update() به Dictionary

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.update({"color": "red"})

 

اضافه کردن به آیتم های Dictionary در پایتون (Python)

 

حذف آیتم های Dictionary در پایتون (Python)

روش های مختلفی در پایتون وجود دارد که با آن ها می توانید آیتم های یک Dictionary را حذف کنید که در ادامه به بررسی آن ها می پردازیم.

متد pop

این متد آیتم مورد نظر شما را با نام key آن حذف می کند.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.pop("model")
print(thisdict)

 

حذف آیتم های Dictionary در پایتون (Python) با متد ()pop

 

متد popitem

این متد آخرین آیتم وارد شده را حذف می کند، قبل از نسخه 3.7 پایتون این متد یک آیتم را به صورت تصادفی حذف می کرد.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.popitem()
print(thisdict)

 

حذف آیتم های Dictionary در پایتون (Python) با متد ()popitem

 

کلمه کلیدی del

در این روش آیتم را با نام key مشخص شده حذف می کند.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
del thisdict["model"]
print(thisdict)

 

حذف آیتم های Dictionary در پایتون (Python) با کلمه کلیدی del

 

این کلمه کلیدی همچنین می تواند یک dictionary را به طور کامل حذف کند.

 

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

 

حذف آیتم های Dictionary در پایتون (Python) با کلمه کلیدی del

 

چون بعد از حذف کامل dictionary دیگر چیزی برای نمایش وجود ندارد پیغام خطا چاپ می کند.

متد clear

این متد تمام آیتم های Dictionary را پاک می کند اما خود dictionary حذف نمی شود.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.clear()
print(thisdict)

 

حذف آیتم های Dictionary در پایتون (Python) با متد ()clear

 

حلقه های Dictionaries در پایتون (Python)

شما می توانید یک Dictionary را با حلقه for پیمایش کنید.

هنگام پیمایش یک Dictionary می توانید مقادیر آن را از طریق کلید واژه (key) برگردانید، اما متدهایی نیز برای این کار وجود دارد که در ادامه آن ها را بررسی می کنیم.

مثال: در این مثال لیست key ها را به ترتیب یکی یکی برمیگرداند.

 

for x in thisdict:
  print(x)

 

حلقه های Dictionaries در پایتون (Python)

 

مثال: در این مثال لیست value ها را به ترتیب یکی یکی برمیگرداند.

 

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

 

حلقه های Dictionaries در پایتون (Python)

 

متد values

مثال: همچنین می توانید با متد values() مقادیر (value) یک Dictionary را برگردانید.

 

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

 

حلقه های Dictionaries در پایتون (Python) با متد ()values

 

متد keys

مثال: برای برگشت کلید واژه (key) های یک Dictionary می توانید از متد keys() استفاده کنید.

 

for x in thisdict.keys():
  print(x)

 

حلقه های Dictionaries در پایتون (Python) با متد ()keys

 

متد items

مثال: برای برگشت کلید واژه و مقدار (key : value) می توانید از متد items() استفاده کنید.

 

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

 

حلقه های Dictionaries در پایتون (Python) با متد ()items

 

کپی کردن یک Dictionary در پایتون (Python)

شما نمی توانید با نوشتن dict1 = dict2 به راحتی یک Dictionary را کپی کنید، برای اینکه dic2 فقط یک مرجع از dict1 خواهد بود و تغییر های ایجاد شده در dict1 به طور خودکار در dict2 هم اعمال می شوند.

روش هایی برای تهیه کپی از یک dictionary وجود دارد که با هم آن ها را بررسی می کنیم.

متد copy

یکی از راه های تهیه یک کپی از یک Dictionary استفاده از متد copy() است.

مثال: در زیر یک کپی از  Dictionary با متد copy() ایجاد شده است.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = thisdict.copy()
print(mydict)

 

کپی کردن یک Dictionary در پایتون (Python) با متد ()copy

 

متد dict

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

مثال: در زیر یک کپی از  Dictionary با متد dict() ایجاد شده است.

 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = dict(thisdict)
print(mydict)

 

کپی کردن یک Dictionary در پایتون (Python) با متد ()dict

 

Dictionary های تو در تو در پایتون (Python)

در پایتون یک Dictionary خود می تواند شامل چندین Dictionary باشد و در اصطلاح به این عمل تو در تو (nested) نویسی Dictionary ها گفته می شود.

مثال: در زیر یک Dictionary ایجاد شده که خود دارای 3 Dictionary دیگر است.

 

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

 

Dictionary های تو در تو در پایتون (Python)

 

همچنین می توانید چند Dictionary را به یک Dictionary اضافه کنید.

مثال: در زیر 3 Dictionary ایجاد شده و سپس همه آن ها به یک Dictionary جدید اضافه شده اند.

 

child1 = {
  "name" : "Emil",
  "year" : 2004
}
child2 = {
  "name" : "Tobias",
  "year" : 2007
}
child3 = {
  "name" : "Linus",
  "year" : 2011
}
myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

 

Dictionary های تو در تو در پایتون (Python)

 

متد های Dictionary در پایتون (Python)

پایتون مجموعه ای از متدهای داخلی دارد که می توانید از آن ها برای ایجاد تغییرات در Dictionaries استفاده کنید که در جدول زیر به طول خلاصه وار آن ها را توضیح داده ایم.

 

متد های Dictionary در پایتون (Python)
متد توضیحات
Clear() پاک کردن تمام آیتم های یک فرهنگ لغت
Copy() ایجاد یک کپی از یک فرهنگ لغت
Fromkeys() برگشت دادن یک فرهنگ لغت با کلید و مقدار های مشخص شده
Get() برگشت دادن یک مقدار از یک کلید مشخص
Items() یک لیست چندتایی شامل کلید و مقدار مشخص شده را برمیگرداند
Keys() لیستی را که شامل همه کلید های یک فرهنگ لغت است برمیگرداند
Pop() حذف یک آیتم با کلید مشخص شده
Popitem() حذف آخرین کلید  و مقدار از یک فرهنگ لغت
Setdefault() مقدار کلید مشخص شده را برمی گرداند و اگر کلید وجود نداشت کلید را با مقدار مشخص شده وارد کنید
Update() فرهنگ لغت را با مقدار و کلید مشخص شده به روز می کند
Values() لیستی را که شامل همه مقدار های یک فرهنگ لغت است برمیگرداند

 

خب در این مقاله نوع داده ای Dictionary را به طور مفصل مورد بحث قرار دادیم، در مقاله بعدی به بررسی متد های داخلی این نوع داده ای با ذکر مثال می پردازیم.

سامان محمدپور
در مورد نویسنده : موفقیت بستگی به تلاش هر شخص داره، هممون ب همون اندازه که تلاش کردیم موفق شدیم.


پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی