دیکشنری در پایتون چیست؟ آموزش Dictionary با مثال کاربردی
جلسه ۲۰ آموزش پایتون: دیکشنری (Dictionary)؛ ذخیره اطلاعات با کلید و مقدار دیکشنری در پایتون یکی از مهمترین ساختارهای داده برای ذخیره و مدیریت اطلاعات بهصورت کلید و مقدار است. در این جلسه یاد میگیریم چگونه دیکشنری بسازیم، به مقادیر آن دسترسی پیدا کنیم و اطلا…
خلاصه تحلیلی خبر
جلسه ۲۰ آموزش پایتون: دیکشنری (Dictionary)؛ ذخیره اطلاعات با کلید و مقدار دیکشنری در پایتون یکی از مهمترین ساختارهای داده برای ذخیره و مدیریت اطلاعات بهصورت کلید و مقدار است. در این جلسه یاد میگیریم چگونه دیکشنری بسازیم، به مقادیر آن دسترسی پیدا کنیم و اطلا…
موضوعات اصلی: پشتیبانی شبکه، دیکشنری، name، کلید، age، مقدار
جلسه ۲۰ آموزش پایتون: دیکشنری (Dictionary)؛ ذخیره اطلاعات با کلید و مقدار
دیکشنری در پایتون یکی از مهمترین ساختارهای داده برای ذخیره و مدیریت اطلاعات بهصورت کلید و مقدار است. در این جلسه یاد میگیریم چگونه دیکشنری بسازیم، به مقادیر آن دسترسی پیدا کنیم و اطلاعات جدید اضافه یا ویرایش کنیم. همچنین با متدهای کاربردی دیکشنری، پیمایش دادهها و تفاوت آن با لیست و تاپل آشنا میشویم. در پایان، با چند مثال عملی میتوانیم از دیکشنری برای ساختاردهی بهتر دادهها در پروژههای پایتونی استفاده کنیم.
در جلسه قبل چه گذشت ؟
در جلسه قبل با [مجموعهها در پایتون (Set)] آشنا شدیم؛ ساختاری که برای نگهداری دادههای یکتا کاربرد دارد. حالا نوبت یکی از پرکاربردترین ساختارهای داده در پایتون است: دیکشنری (Dictionary).آموزش Set در پایتون؛ آشنایی با مجموعهها و دادههای یکتا
دیکشنری به ما کمک میکند اطلاعات را بهصورت جفتهای «کلید و مقدار» ذخیره کنیم؛ مثلاً نام، سن و شهر یک کاربر را با کلیدهای مشخص نگه داریم و هر زمان لازم شد، بهسادگی به آنها دسترسی پیدا کنیم.
دیکشنری در پایتون چیست؟
دیکشنری (Dictionary) یک ساختار داده است که اطلاعات را به شکل کلید: مقدار نگهداری میکند.
هر آیتم در دیکشنری از دو بخش تشکیل شده است
کلید (Key): شناسهای که برای پیدا کردن اطلاعات استفاده میشود.
مقدار (Value): دادهای که به آن کلید اختصاص داده شده است.
برای مثال، اگر بخواهیم مشخصات یک کاربر را ذخیره کنیم، میتوانیم از دیکشنری استفاده کنیم
user = { "name": "Ali", "age": 25, "city": "Tehran"}در این مثالnameageوcityکلیدهای دیکشنری هستند و مقادیر آنها بهترتیب"Ali"25و"Tehran"است.
دیکشنریها با آکولاد{}ساخته میشوند و هر کلید و مقدار با علامتاز هم جدا میشوند.
ساخت دیکشنری در پایتون
برای ساخت یک دیکشنری، کافی است کلیدها و مقادیر موردنظر را داخل آکولاد قرار دهیم
product = { "title": "Laptop", "price": , "available": True}در اینجا یک دیکشنری با سه مشخصه برای محصول ساختهایم.
اگر بخواهیم دیکشنری خالی ایجاد کنیم، میتوانیم بنویسیم
data = {}یا از تابعdict()استفاده کنیم
data = dict()هر دو روش یک دیکشنری خالی ایجاد میکنند.
دسترسی به مقادیر دیکشنری
برای دریافت مقدار یک کلید، میتوانیم نام کلید را داخل کروشه قرار دهیم
user = { "name": "Sara", "age": 22}print(user["name"])print(user["age"])خروجی
Sara 22اما اگر کلیدی در دیکشنری وجود نداشته باشد، استفاده از کروشه باعث ایجاد خطایKeyErrorمیشود.
برای دسترسی امنتر، میتوانیم از متدget()استفاده کنیم
print(user.get("name"))print(user.get("email"))خروجی
Sara Noneاگر کلید پیدا نشودget()بهصورت پیشفرضNoneبرمیگرداند. همچنین میتوانیم مقدار پیشفرض دلخواه مشخص کنیم
print(user.get("email", "ایمیل ثبت نشده است"))خروجی
ایمیل ثبت نشده استاضافه کردن اطلاعات به دیکشنری
برای اضافه کردن یک کلید و مقدار جدید، کافی است کلید موردنظر را بنویسیم و مقداری به آن اختصاص دهیم
user = { "name": "Sara", "age": 22}user["city"] = "Shiraz"print(user)خروجی
{'name': 'Sara', 'age': 22, 'city': 'Shiraz'}اگر کلید جدید باشد، آیتم تازهای به دیکشنری اضافه میشود.
ویرایش مقدارهای دیکشنری
اگر کلیدی از قبل وجود داشته باشد، با اختصاص مقدار جدید، مقدار قبلی آن تغییر میکند
user = { "name": "Sara", "age": 22}user["age"] = 23print(user)خروجی
{'name': 'Sara', 'age': 23}بنابراین یک دستور میتواند هم برای اضافه کردن آیتم جدید و هم برای تغییر مقدار آیتم موجود استفاده شود.
حذف اطلاعات از دیکشنری
پایتون روشهای مختلفی برای حذف آیتمهای دیکشنری دارد.
استفاده ازpop()
متدpop()یک کلید را حذف میکند و مقدار آن را برمیگرداند
user = { "name": "Ali", "age": 25, "city": "Tehran"}age = user.pop("age")print(age)print(user)خروجی
25 {'name': 'Ali', 'city': 'Tehran'}اگر کلید وجود نداشته باشدpop()خطا میدهد؛ مگر اینکه مقدار پیشفرض مشخص کنیم
user.pop("email", None)استفاده ازdel
با دستورdelمیتوانیم یک آیتم را حذف کنیم
del user["city"]استفاده ازclear()
اگر بخواهیم تمام آیتمهای دیکشنری را حذف کنیم، ازclear()استفاده میکنیم
user.clear()print(user)خروجی
{}این متد دیکشنری را خالی میکند، اما خود متغیر همچنان وجود دارد.
متدهای کاربردی دیکشنری در پایتون
دیکشنری متدهای متنوعی دارد که کار با اطلاعات را سادهتر میکنند. در ادامه، مهمترین آنها را بررسی میکنیم.
متدkeys()
متدkeys()تمام کلیدهای دیکشنری را برمیگرداند
user = { "name": "Ali", "age": 25, "city": "Tehran"}print(user.keys())خروجی
dict_keys(['name', 'age', 'city'])متدvalues()
اگر فقط به مقادیر دیکشنری نیاز داشته باشیم، میتوانیم ازvalues()استفاده کنیم
print(user.values())خروجی
dict_values(['Ali', 25, 'Tehran'])متدitems()
متدitems()کلیدها و مقادیر را بهصورت جفتهای دوتایی برمیگرداند
print(user.items())خروجی
dict_items([('name', 'Ali'), ('age', 25), ('city', 'Tehran')])این متد بهویژه هنگام پیمایش دیکشنری کاربرد زیادی دارد.
متدupdate()
باupdate()میتوانیم چند مقدار را همزمان اضافه یا ویرایش کنیم
user.update({ "age": 26, "country": "Iran"})print(user)خروجی
{'name': 'Ali', 'age': 26, 'city': 'Tehran', 'country': 'Iran'}در این مثال، مقدارageتغییر کرده و کلیدcountryنیز به دیکشنری اضافه شده است.
متدsetdefault()
متدsetdefault()مقدار یک کلید را برمیگرداند. اگر کلید وجود نداشته باشد، آن را با مقدار پیشفرض وارد دیکشنری میکند
user = { "name": "Ali"}user.setdefault("age", 25)print(user)خروجی
{'name': 'Ali', 'age': 25}اگر کلیدageاز قبل وجود داشته باشد، مقدار آن تغییر نمیکند.
پیمایش دیکشنری با حلقهfor
یکی از کارهای رایج، پیمایش کلیدها یا مقادیر دیکشنری است.
پیمایش کلیدها
اگر دیکشنری را مستقیماً در حلقهforقرار دهیم، کلیدها پیمایش میشوند
user = { "name": "Ali", "age": 25, "city": "Tehran"}for key in user: print(key)خروجی
name age cityپیمایش مقادیر
برای پیمایش مقدارها میتوانیم ازvalues()استفاده کنیم
for value in user.values(): print(value)خروجی
Ali 25 Tehranپیمایش کلید و مقدار بهصورت همزمان
روش کاربردیتر، استفاده ازitems()است
for key, value in user.items(): print(key, ":", value)خروجی
name : Ali age : 25 city : Tehranدر این مثال، متغیرkeyکلید هر آیتم و متغیرvalueمقدار همان آیتم را دریافت میکند.
بررسی وجود یک کلید در دیکشنری
برای بررسی اینکه کلیدی در دیکشنری وجود دارد یا نه، میتوانیم از عملگرinاستفاده کنیم
user = { "name": "Ali", "age": 25}if "name" in user: print("کلید name وجود دارد")خروجی
کلید name وجود داردنکته مهم این است که عملگرinدر دیکشنری، وجود کلید را بررسی میکند، نه مقدار را.
برای مثال
print("Ali" in user)خروجی
Falseچون"Ali"مقدار یکی از آیتمهاست و کلید دیکشنری نیست.
دیکشنری تو در تو (Nested Dictionary)
گاهی لازم است اطلاعات پیچیدهتری ذخیره کنیم. در این حالت میتوانیم یک دیکشنری را داخل دیکشنری دیگر قرار دهیم.
users = { "user1": { "name": "Ali", "age": 25 }, "user2": { "name": "Sara", "age": 22 }}در این مثال، دیکشنریusersشامل دو دیکشنری دیگر است.
برای دسترسی به نام کاربر اول مینویسیم
print(users["user1"]["name"])خروجی
Aliدیکشنریهای تو در تو برای نگهداری اطلاعات کاربران، محصولات، تنظیمات و دادههای ساختاریافته کاربرد دارند.
تفاوت دیکشنری با لیست و تاپل
در پایتون، هر سه ساختار دیکشنری، لیست و تاپل برای نگهداری دادهها استفاده میشوند؛ اما کاربرد و ویژگیهای آنها متفاوت است.
| ویژگی | List | Tuple | Dictionary |
|---|---|---|---|
| نماد ساخت | [] | () | {} |
| نحوه دسترسی | با اندیس | با اندیس | با کلید |
| تغییرپذیری | تغییرپذیر | تغییرناپذیر | تغییرپذیر |
| نگهداری داده | مجموعهای از آیتمها | مجموعهای از آیتمها | جفتهای کلید و مقدار |
| کاربرد اصلی | فهرست دادهها | دادههای ثابت | اطلاعات دارای شناسه |
برای مثال، اگر فقط بخواهیم فهرستی از نامها داشته باشیم، لیست گزینه مناسبی است
names = ["Ali", "Sara", "Reza"]اما اگر بخواهیم مشخصات هر فرد را با عنوانهای مشخص ذخیره کنیم، دیکشنری انتخاب بهتری خواهد بود
user = { "name": "Ali", "age": 25}نکات مهم درباره دیکشنری در پایتون
هنگام استفاده از دیکشنری بهتر است چند نکته را به خاطر داشته باشیم
کلیدهای دیکشنری باید یکتا باشند.
اگر یک کلید تکراری تعریف شود، مقدار آخر برای آن کلید باقی میماند.
کلیدها باید از نوع داده تغییرناپذیر و قابل هش باشند؛ مانند
strintوtupleای که اعضای آن قابل هش هستند.مقدارهای دیکشنری میتوانند از انواع مختلف داده باشند؛ مانند رشته، عدد، لیست یا حتی دیکشنری دیگر.
دیکشنریهای پایتون در نسخههای جدید ترتیب درج آیتمها را حفظ میکنند.
برای دسترسی به مقدار یک کلید، معمولاً از
[]یاget()استفاده میشود.
مثال کلید تکراری
data = { "name": "Ali", "name": "Sara"}print(data)خروجی
{'name': 'Sara'}در این مثال، مقدار نهایی کلیدnameبرابر با"Sara"است.
یک مثال کاربردی از دیکشنری در پایتون
فرض کنیم میخواهیم اطلاعات یک محصول را ذخیره کنیم و قیمت آن را تغییر دهیم
product = { "name": "Keyboard", "price": 1200000, "stock": 15}print("نام محصول:", product["name"])print("قیمت:", product["price"])product["price"] = 1350000product["stock"] = 12print("اطلاعات بهروز شده:", product)خروجی
نام محصول: Keyboard قیمت: 1200000 اطلاعات بهروز شده: {'name': 'Keyboard', 'price': 1350000, 'stock': 12}این مثال نشان میدهد که دیکشنری چگونه میتواند اطلاعات یک محصول را به شکلی منظم نگهداری و مدیریت کند.
جمعبندی
دیکشنری یکی از ساختارهای داده مهم و پرکاربرد در پایتون است که اطلاعات را با استفاده از کلید و مقدار ذخیره میکند. این ساختار برای زمانی مناسب است که بخواهیم بهجای استفاده از شماره اندیس، با یک شناسه مشخص به دادهها دسترسی داشته باشیم.
در این جلسه یاد گرفتیم
چگونه دیکشنری بسازیم.
چگونه به مقادیر دسترسی پیدا کنیم.
چطور اطلاعات را اضافه، ویرایش یا حذف کنیم.
چگونه از متدهایی مانند
get()items()keys()values()وupdate()استفاده کنیم.چطور با حلقه
forدیکشنری را پیمایش کنیم.چگونه دیکشنریهای تو در تو بسازیم.
در جلسه بعدی، به سراغ یکی از قابلیتهای مهم پایتون میرویم: توابع (Functions)؛ ابزاری که کمک میکند کدهای خود را مرتبتر، قابل استفاده مجدد و سادهتر بنویسیم.
سوالات متداول درباره دیکشنری در پایتون
دیکشنری در پایتون چیست؟
دیکشنری ساختاری برای ذخیره دادهها بهصورت جفتهای کلید و مقدار است. هر کلید به یک مقدار مشخص اشاره میکند.
چگونه یک دیکشنری خالی بسازیم؟
با استفاده از آکولاد خالی یا تابعdict()
data = {}یا
data = dict()تفاوتget()با استفاده از کروشه چیست؟
باuser["name"]اگر کلید وجود نداشته باشد، خطایKeyErrorرخ میدهد. اماuser.get("name")در صورت نبودن کلید، بهصورت پیشفرضNoneبرمیگرداند.
آیا کلیدهای دیکشنری میتوانند تکراری باشند؟
خیر. کلیدها در دیکشنری یکتا هستند. اگر یک کلید چند بار تعریف شود، مقدار آخر آن باقی میماند.
آیا دیکشنری در پایتون تغییرپذیر است؟
بله. میتوان پس از ساخت دیکشنری، آیتمهای آن را اضافه، حذف یا ویرایش کرد.
چگونه کلیدهای یک دیکشنری را دریافت کنیم؟
با متدkeys()
print(user.keys())چگونه یک آیتم را از دیکشنری حذف کنیم؟
میتوان ازpop()یاdelاستفاده کرد
user.pop("age")یا
del user["age"]انکر تکست لینک داخلی به جلسه قبل
انکر تکست لینک داخلی به جلسه بعد
آموزش توابع در پایتون؛ ساخت و استفاده از Function
نوشتهدیکشنری در پایتون چیست؟ آموزش Dictionary با مثال کاربردیاولین بار درپایگاه خبری ارتباطات و فناوری اطلاعات. پدیدار شد.
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.