محمد حسن خدامی
محمد حسن خدامی
خواندن ۳ دقیقه·۱ سال پیش

دیکشنری ها در پایتون به ساده ترین زبان! بخش اول



اول از همه باید برسی کنیم ببینیم دیکشنری اصلا چیه؟

دیکشنری به مجموعه ای key و value ها گفته میشه که برای نگه داری data(اطلاعات) از اون استفاده میشه.

حالا فرقش با List , tuple , set و... چیه؟ فرقش key و value هست!

بخوایم ساده بگیم برای کلیدی یک ارزش وجود داره ، یعنی چی؟ یعنی هر متغیری که (با variable اشتباه نگیرید.) ما به عنوان key اون رو مینویسیم یک value خاص مربوط به خودش رو داره.

بیاید به این مثال بهتر متوجه بشیم:

1- چجوری یک دیکشنری بسازیم:

یادمون باشه نماد دیکشنری  {} هست که توی زبان انگلیسی بهش Curly Bracket گفته میشه تو فارسی بهش میگیم آکولاد
یادمون باشه نماد دیکشنری {} هست که توی زبان انگلیسی بهش Curly Bracket گفته میشه تو فارسی بهش میگیم آکولاد

دیکشنری ما آمادست! الان توی این مثال عدد 1 که من نوشتم Key هست و "this" میشه Value ما.

مزیت دیکشنری این هست که اطلاعات رو سازماندهی میکنه و یک نکته خیلی مهم دیگه

2- یک key نمیتونه 2 تا value داشته باشه اما 1 value میتونه 2 تا key داشته باشه!

از روی تصویر ببینیم فکر کنم خیلی توضحیش راحت تر باشه!

این کد ماست
این کد ماست
این خروجیمون
این خروجیمون

کلمه this یک Value هست که ما هم به عدد 1 اون رو دادیم هم به عدد 4 پس یک Value میتونه به 2 یا حتی بیشتر Key داشته باشه.(Value ها یکم شیطونن! اما key ها خیلی وفادارن!) چرا؟ توی مثال پایین میبینیم:

همونطور که میبینید داخل کد ما عدد 1 (key ما در واقع) 2 تا Value گرفته... حالا چی میشه؟!
همونطور که میبینید داخل کد ما عدد 1 (key ما در واقع) 2 تا Value گرفته... حالا چی میشه؟!
به اولی خیانت میکنه و میره با دومی! (شاید خیلیم وفادار نیستن!)
به اولی خیانت میکنه و میره با دومی! (شاید خیلیم وفادار نیستن!)

در واقع Value تغییر پیدا میکنه و دیگه Value عدد 1 ، this نیست.

3- یه نکته بدرد نخور:

قبل از Python 3.7 دیشکنری ها Order نداشتن و مثل Set ها بودن اما بعد از اون آپدیت دیشکنری ها منظم شدن! (توی یک مقاله راجب Set ها توضیح میدم.)

4- رعایت Clean Code:

تقریبا از همه چیز مهم تره!

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



5- به دست آوردن طول یک دیکشنری(Length)

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

طول دیکشنری ما میشه 3. یعنی 3 تا Key, value داریم
طول دیکشنری ما میشه 3. یعنی 3 تا Key, value داریم

6- استفاده از Data types در دیکشنری:

ما میتونیم از String , int , boolean , tuples , list در دیشکنری خودمون استفاده کنیم.

توی این دیشکنری از تمامی Data types استفاده شده.
توی این دیشکنری از تمامی Data types استفاده شده.
این هم میشه خروجیمون
این هم میشه خروجیمون

7- به دست آوردن یک Value با استفاده از Key:

فرض کنید که ما Key رو میدونیم اما نمی خوایم دنبال Value بگردیم یا صد تا دلیل دیگه! باید چیکار کنیم؟

با استفاده از Key به راحتی میتونیم Value رو پیدا کنیم. چجوری ؟ اینجوری!

print(اسم دیکشنری[key])
print(اسم دیکشنری[key])
همونطور که میبیند توی خروجی Value ها به ما داده شده.
همونطور که میبیند توی خروجی Value ها به ما داده شده.


8- به دست آوردن Type:

برای اینکه بفهمیم هر Variable ما از چه کلاسی هست (از چه Data type هست.) از تابع ()Type استفاده میکنیم.

به نکته 6 برگردیم ، گفتیم که از تمامی Data types میشه استفاده کرد. ببینیم درست گفتیم یا نه!
به نکته 6 برگردیم ، گفتیم که از تمامی Data types میشه استفاده کرد. ببینیم درست گفتیم یا نه!
اگر به ترتیب بیایم پایین میبینم که درست گفتیم! خود متغیر ما (mmd_info) از کلاس dict یا دیکشنری هست
اگر به ترتیب بیایم پایین میبینم که درست گفتیم! خود متغیر ما (mmd_info) از کلاس dict یا دیکشنری هست

و همینطور به ترتیب بیایم String , int , tuple , boolean , list هستند.


9- برنامه نویسی مثل نوازندگی هست.

امیدوارم که این مقاله کوتاه برات مفید بوده باشه نکته مهم این هست که برنامه نویسی مثل نوازندگی هست 1000 بار هم کلیپ ، آموزش ، مقاله و... بخونی نمیتونی مثل کسی که دو بار یک ویالون رو نواخته، بنوازی. حتما باید خودت دست به کار بشی و کد بزنی!

هر سوالیم داشتی بپرس خوشحال میشم جواب بدم

توی پارت 2 یکم قراره بحث دیکشنری ها حرفه ای تر بشه.











نوشته ها و آموزش های یک برنامه نویس که بنظر خودش خسته هست اما به نظر دیگران خستگی نمیشناسه. بیشترم راجب پایتون و جنگو نظر میده ! سایت شخصیشم فعلا Down شده چون پول هاستشو نداده!
شاید از این پست‌ها خوشتان بیاید