مقدمه
دیکشنری یکی از مهمترین و پرکاربردترین ساختارهای داده در پایتون است. زمانی که بخواهیم اطلاعات را به صورت رابطه بین یک کلید (Key) و یک مقدار (Value) ذخیره کنیم، استفاده از Dictionary انتخاب مناسبی خواهد بود.
برای مثال، فرض کنید میخواهیم نام چند کشور را به پایتخت آنها مرتبط کنیم. به جای استفاده از چند لیست جداگانه، میتوانیم این اطلاعات را در یک دیکشنری ذخیره کنیم:
capitals = {
"Iran": "Tehran",
"France": "Paris",
"Italy": "Rome"
}
در این مثال، نام کشورها کلید و نام پایتختها مقدار هستند.
دیکشنریها در پروژههای مختلف پایتون، از برنامههای ساده گرفته تا پروژههای تحلیل داده و توسعه نرمافزار، کاربرد زیادی دارند.
دیکشنری در پایتون چیست؟
دیکشنری یا Dictionary یک ساختار داده است که اطلاعات را به صورت جفتهای کلید و مقدار ذخیره میکند.
هر عنصر دیکشنری از دو بخش تشکیل شده است:
Key → Value
برای مثال:
student = {
"name": "Sara",
"age": 20,
"score": 18.5
}
در این دیکشنری:
کلیدها باید در یک دیکشنری یکتا باشند و میتوان از کلید برای دسترسی سریع به مقدار مرتبط با آن استفاده کرد.
چگونه یک دیکشنری در Python ایجاد کنیم؟
برای ایجاد دیکشنری از علامتهای {} استفاده میشود.
یک دیکشنری خالی:
my_dict = {}
برای ایجاد دیکشنری همراه با داده میتوان جفتهای کلید و مقدار را با استفاده از: از یکدیگر جدا کرد:
eng2sp = {
"one": "uno",
"two": "dos",
"three": "tres"
}
در این مثال، دیکشنری eng2sp برای نگهداری معادل اسپانیایی چند کلمه انگلیسی ایجاد شده است.
در ساختار بالا:
"one" → "uno"
"two" → "dos"
"three" → "tres"
کلیدها در سمت چپ و مقادیر در سمت راست علامت : قرار دارند.
افزودن عنصر جدید به دیکشنری
یکی از ویژگیهای مهم Dictionary این است که میتوان پس از ایجاد آن، دادههای جدیدی به دیکشنری اضافه کرد.
برای مثال:
eng2sp = {}
eng2sp["one"] = "uno"
eng2sp["two"] = "dos"
eng2sp["three"] = "tres"
در اینجا ابتدا یک دیکشنری خالی ایجاد کردهایم و سپس سه جفت کلید و مقدار به آن اضافه کردهایم.
برای مشاهده دیکشنری میتوانprint() استفاده کرد:
print(eng2sp)
خروجی مشابه زیر خواهد بود:
{'one': 'uno', 'two': 'dos', 'three': 'tres'}
ترتیب نمایش عناصر ممکن است بسته به نحوه ایجاد و نسخه Python متفاوت باشد؛ اما در Python 3.7 و نسخههای جدیدتر، ترتیب درج عناصر دیکشنری حفظ میشود.
دسترسی به مقدار یک کلید
برای دسترسی به مقدار مربوط به یک کلید، کافی است کلید را داخل براکت قرار دهیم.
برای مثال:
eng2sp = {
"one": "uno",
"two": "dos",
"three": "tres"
}
print(eng2sp["two"])
خروجی:
dos
در اینجا Python با استفاده از کلید"two" مقدار متناظر با آن یعنی "dos"را پیدا میکند.
بنابراین برخلاف لیستها که معمولاً با اندیس عددی به عناصر آنها دسترسی پیدا میکنیم، در دیکشنری از کلید برای دسترسی به مقدار استفاده میشود.
تفاوت دیکشنری با لیست در پایتون
لیست و دیکشنری هر دو از ساختارهای داده مهم Python هستند، اما کاربرد متفاوتی دارند.
در یک لیست:
students = ["Sara", "Ali", "Reza"]
برای دسترسی به عنصر از اندیس استفاده میکنیم:
print(students[0])
خروجی:
Sara
اما در دیکشنری:
students = {
"first": "Sara",
"second": "Ali",
"third": "Reza"
}
به جای اندیس عددی، از کلید استفاده میکنیم:
print(students["first"])
خروجی:
Sara
بنابراین اگر دادههای شما رابطه مشخصی بین یک شناسه و یک مقدار دارند، دیکشنری معمولاً انتخاب مناسبی است.
کلیدهای دیکشنری چه نوع دادهای میتوانند باشند؟
کلیدهای Dictionary باید از نوع Hashable باشند. به زبان ساده، بسیاری از انواع تغییرناپذیر مانند رشتهها، اعداد و Tupleها میتوانند به عنوان کلید استفاده شوند.
برای مثال:
data = {
"name": "Ali",
10: "number",
(1, 2): "tuple"
}
در این مثال سه نوع مختلف کلید استفاده شده است.
در مقابل، انواع تغییرپذیر مانند list نمیتوانند مستقیماً به عنوان کلید دیکشنری استفاده شوند.
برای مثال، کد زیر خطا ایجاد میکند:
data = {
[1, 2]: "value"
}
زیرا list قابل Hash شدن نیست.
تغییر مقدار یک کلید
اگر کلیدی از قبل در دیکشنری وجود داشته باشد، میتوان مقدار آن را تغییر داد.
برای مثال:
student = {
"name": "Sara",
"score": 17
}
student["score"] = 19
اکنون مقدار score برابر 19 است.
میتوان نتیجه را مشاهده کرد:
print(student)
خروجی:
{'name': 'Sara', 'score': 19}
بنابراین یک دستور ساده میتواند مقدار قبلی یک کلید را به مقدار جدید تغییر دهد.
بررسی وجود یک کلید در دیکشنری
گاهی لازم است قبل از دسترسی به یک مقدار بررسی کنیم که کلید موردنظر در Dictionary وجود دارد یا خیر.
برای این کار میتوان از عملگر in استفاده کرد:
student = {
"name": "Sara",
"score": 18
}
print("name" in student)
خروجی:
True
اما:
print("age" in student)
خروجی:
False
این روش میتواند از بروز خطا هنگام دسترسی به کلیدهای ناموجود جلوگیری کند.
استفاده از متد get در دیکشنری
روش دیگری برای دریافت مقدار یک کلید، استفاده از متد get() است.
برای مثال:
student = {
"name": "Sara",
"score": 18
}
print(student.get("name"))
خروجی:
Sara
اگر کلید وجود نداشته باشد،get() به صورت پیشفرض مقدار None را برمیگرداند:
print(student.get("age"))
برای جلوگیری از دریافت None میتوان مقدار پیشفرض مشخص کرد:
print(student.get("age", 0))
در این حالت اگر کلید age وجود نداشته باشد، مقدار 0 برگردانده میشود.
حذف عناصر از Dictionary
برای حذف یک عنصر از دیکشنری میتوان از دستور del استفاده کرد:
student = {
"name": "Sara",
"score": 18
}
del student["score"]
اکنون کلید score از دیکشنری حذف شده است.
همچنین متد pop() امکان حذف یک کلید و دریافت مقدار آن را فراهم میکند:
score = student.pop("score")
برای حذف تمام عناصر دیکشنری نیز میتوان از clear() استفاده کرد:
student.clear()
پس از اجرای این دستور، دیکشنری خالی خواهد شد.
مشاهده کلیدها و مقادیر دیکشنری
پایتون متدهای مختلفی برای مشاهده اطلاعات Dictionary در اختیار ما قرار میدهد.
برای دریافت کلیدها:
student.keys()
برای دریافت مقادیر:
student.values()
و برای دریافت جفتهای کلید و مقدار:
student.items()
برای مثال:
student = {
"name": "Sara",
"age": 20
}
print(student.keys())
print(student.values())
print(student.items())
این متدها بهخصوص هنگام پیمایش و پردازش اطلاعات دیکشنری کاربرد زیادی دارند.
پیمایش دیکشنری با حلقه For
میتوان با استفاده از حلقه for روی عناصر Dictionary پیمایش انجام داد.
برای مثال، برای پیمایش کلیدها:
student = {
"name": "Sara",
"age": 20,
"score": 18
}
for key in student:
print(key)
برای دریافت همزمان کلید و مقدار نیز میتوان از items() استفاده کرد:
for key, value in student.items():
print(key, value)
این روش یکی از رایجترین روشها برای پردازش دادههای موجود در دیکشنری است.
کاربرد دیکشنری در پروژههای Python
دیکشنریها در بسیاری از پروژههای واقعی کاربرد دارند. برای مثال، میتوان از آنها برای ذخیره اطلاعات کاربران استفاده کرد:
user = {
"username": "sara",
"age": 20,
"email": "sara@example.com"
}
همچنین میتوان اطلاعات محصولات، مشخصات دانشجویان، تنظیمات برنامه، دادههای دریافتی از API و بسیاری از اطلاعات ساختاریافته دیگر را با Dictionary مدیریت کرد.
به همین دلیل، یادگیری دیکشنری یکی از مراحل مهم در مسیر آموزش برنامه نویسی Python محسوب میشود.
جمعبندی
دیکشنری یا Dictionary یکی از مهمترین ساختارهای داده در Python است که اطلاعات را به صورت جفتهای کلید و مقدار ذخیره میکند.
در این آموزش یاد گرفتیم که برای ساخت دیکشنری از {} استفاده میشود و هر عنصر از یک کلید و مقدار تشکیل شده است. همچنین با روشهای ایجاد، افزودن، تغییر، حذف و دسترسی به عناصر Dictionary آشنا شدیم.
متدهایی مانند get()، keys()، values()،items() و clear() نیز ابزارهای کاربردی برای مدیریت اطلاعات دیکشنری هستند.
درک صحیح Dictionary به شما کمک میکند در ادامه مسیر برنامهنویسی Python با ساختارهای داده پیچیدهتر و پروژههای واقعی راحتتر کار کنید.
یادگیری Python را کاربردی شروع کنید
اگر میخواهید برنامهنویسی Python را اصولی و کاربردی یاد بگیرید، میتوانید در کارگاه آنلاین برنامهنویسی Python پژواک دانش شرکت کنید.
با یادگیری مفاهیم پایهای مانند متغیرها، ساختارهای داده، شرطها، حلقهها و توابع، مسیر شما برای ورود به پروژههای واقعی پایتون هموارتر خواهد شد.
برای ثبتنام در کارگاه آنلاین برنامهنویسی Python پژواک دانش، همین حالا اقدام کنید.