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

سلامت خدمت کاربران محترم.
همون‌طور که می‌دونید ما یکی از چیزهایی که زیاد توی برنامه‌هامون ازش استفاده می‌کنیم، داده‌ها و اطلاعات هستند. یعنی برنامه‌ای که داده و اطلاعات و داده‌ای که نداشته باشه هیچ کاری باهاش نمیشه کرد. تو این قسمت قصد داریم تا با یه نوع جدید داده‌ای آشنا بشیم که با به کارگیری اون می‌تونیم برنامه‌های قدرتمندتری رو بنویسیم.

بیاین یه مرور سریعی داشته باشیم بر مباحث قبل…
ما ابتدا اومدیم برای ذخیره داده‌هامون متغیرها رو تعریف کردیم و کار با اونها رو یاد گرفتیم.
در ادامه دیدیم که اگه بخوایم با مجموعه‌ای از متغیرهای مرتبط با هم کار کنیم بهتره که از لیست‌ها استفاده کنیم.
اما گاهی اوقات استفاده از لیست‌ها برای ما مناسب نیستند.
آخه توی لیست‌ها فقط یه لیستی از مقادیر داریم که با ترتیب خاصی کنار هم قرار گرفتند و اطلاعات دیگه‌ای به ما نمیدن.

مثلا فرض کنید که قراره یه لیستی از شماره تلفن افراد داشته باشین. اینجا دو تا چیز مهمه. یکی نام اون شخص و دیگری شماره تلفن اون شخص.
اینجا دیگه زیاد جالب نیس که از لیست‌ها استفاده کنیم. چون فقط یه لیستی از شماره‌ها رو داریم یا اینکه فقط یه لیستی از اشخاص رو خواهیم داشت که اینها به تنهایی به درد ما نمیخوره. اینجا بود که ایده استفاده از دیکشنری مطرح شد!

دیکشنری‌ها رو میشه مثل یه دفترچه تلفن تعریف کرد که دارای یه سری اسامی منحصر به فرد و شماره‌های مرتبطی هستش. 
یا یه مثال دیگه که خیلی هم مرتبط با اونه، لغات نامه‌ها یا دیکشنری‌ها هستند که البته این نام‌گذاری دیکشنری‌ها هم از این جهته که خیلی شبیه اوناست.
در دیکشنری‌ها ما یه سری لغات داریم و یه سری معانی. یا به یه عبارت دیگه دیکشنری‌ها از دو بخش اصلی تشکیل شده‌اند:
کلید (Key) و مقدار (Value)

در واقع ما در دیکشنری‌ها بر خلاف لیست‌ها یه مجموعه‌ای از زوج‌ها داریم.
در ادامه چند تا از تفاوت‌های لیست‌ها و دیکشنری‌ها رو میگم:

تفاوت لیست‌ها و دیکشنری‌ها

  • در لیست‌ها ترتیب مکان عناصر اهمیت داره در صورتی که در دیکشنری ترتیب مهم نیس.
  • در لیست‌ها می‌تونیم مقادیر تکراری داشته باشیم، اما در دیکشنری‌ها، کلیدها منحصر به فردند و نمیشه دو تا کلید با نام یکسان داشت.
  • در لیست‌ها داده‌ها تکی هستند، اما در دیکشنری‌ها داده‌ها به صورت زوج و دو تا دو تا ذخیره شده‌اند.

خب حالا که با دیکشنری‌ها و کاربردشون آشنا شدیم، بهتره که نحوه‌ی نوشتن اونا رو به همراه چند تا مثال داشته باشیم.

dict1 = {
    “first_name”: “MohammdHossein”,
    “last_name”: “Misaghpour”,
    “age”: 21,
    “city”: “Kashan”
}

توضیح:

  • خب بیاین که سینتکس دیکشنری‌ها رو با هم دیگه بررسی کنیم.
  • اول و آخر اونها کاراکتر آکلاد { } میاد.
  • داده‌ها زوج یا دوتایی هستند.
  • هر داده‌ای از دو بخش تشکیل شده: کلید یا key و مقدار یا value
  • در ابتدا کلید مشخص میشه که حتما باید داخل علامت نقل‌قول قرار بگیره.
  • بعد از اون مقدار ما با یه کاراکتر : از کلید جدا میشه.
  • کلیدها از هر نوعی میتونن باشن مثلا: رشته یا عدد و…
  • در صورتی که زوج داده‌های ما بیشتر از یکی باشند با کاما , از همدیگه جدا میشن. البته در انتهای آخرین داده لازم نیست که کاما بیاد.

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

دسترسی به valueها

دسترسی به داده‌های دیکشنری شبیه لیست‌هاست فقط تفاوتش اینه که داخل [ ] باید کلید موردنظرمون بیاد. البته حواسمون باید باشه که این کلید داخل علامت نقل‌قول باشه. به مثال زیر دقت کنید:

print(dict1[‘first_name’])

بروزرسانی دیکشنری

می‌تونیم مقدار کلید موردنظرمون رو تغییر بدیم. خیلی شبیه تغییر آیتم‌های لیست‌ها و متغیرهاست. مثال:

dict1 = {
    “first_name”: “MohammdHossein”,
    “last_name”: “Misaghpour”,
    “age”: 21,
    “city”: “Kashan”
}
print(dict1)
dict1[‘first_name’] = ‘Mohammad’
print(dict1)

تو همین مثال بالا اگه کلیدی رو که میخوایم مقدارش رو عوض کنیم توی دیکشنری ما وجود نداشته باشه، به ما دیکشنری ما اضافه میشه. مثال:

dict1 = {
    “first_name”: “MohammdHossein”,
    “last_name”: “Misaghpour”,
    “age”: 21,
    “city”: “Kashan”
}
print(dict1)
dict1[‘major’] = ‘Computer Engineer’
print(dict1)

اگه این کد رو اجرا کنید و خروجی رو بررسی کنید، متوجه میشین که یه کلید به دیکشنری ما افزوده شده. اگه کلیدی هم قبلا وجود داشت در اون صورت مقدارش بروزرسانی میشه و چیزی به دیکشنری اضافه نمیشه.

حذف مقادیر دیکشنری

گاهی مواقع ما قصد داریم که یه کلیدی رو از دیکشنری‌مون حذف کنیم که در این صورت می‌تونیم از دو تابع del یا pop استفاده کنیم. در مثال زیر نحوه استفاده از اونا بیان شده و هر دو خط یه کار رو انجام میدن.

del dict1[‘first_name’]
dict1.pop(‘first_name’)

البته نباید دو تا رو با همدیگه برای یه مقدار استفاده کرد چون یکی‌شون هم کافیه و اگه مثلا این کد بالا رو اجرا کنید ممکنه با خطا روبرو بشین.

به نظرم برای این قسمت کافیه. البته برای دیکشنری‌ها خیلی کارای دیگه میشه انجام میده اما قصد دارم که در مقالات بعدی و با موضوعات جدید، آموزش کار با اونا رو تکمیل کنم. 
خب این مقاله هم به پایان رسید. امیدوارم که از اون لذت برده باشین. اگه سوال و نظری دارین، می‌تونید در بخش کامنت‌ها با ما به اشتراک بذارین.


منبع: آموزش پایتون به زبان ساده: دیکشنری - وبسایت شخصی محمدحسین میثاق‌پور