دیکشنریها در پایتون

دیکشنریها در پایتون
دیکشنریها (Dictionaries) در پایتون ساختارهای دادهای قدرتمندی هستند که برای ذخیرهسازی مجموعهای از زوجهای کلید-مقدار استفاده میشوند. آنها با لیستها (Lists) و مجموعهها (Sets) تفاوت دارند، زیرا میتوانند مقادیر مختلف را به یک کلید منحصربهفرد مرتبط کنند و ترتیب کلیدها را حفظ میکنند.
این مقاله راهنمای جامع و کاملی برای دیکشنریها در پایتون، از جمله نحوه ایجاد، دسترسی، افزودن، حذف، پیمایش، به روز رسانی و استفاده از روشهای مختلف آنها ارائه میدهد.
1. دیکشنریها چیستند؟
فرض کنید میخواهید اطلاعات مربوط به دانشآموزان یک کلاس را ذخیره کنید. برای هر دانشآموز، باید نام، سن و نمره آنها را ذخیره کنید. دیکشنریها در اینجا به کمک شما میآیند!
یک دیکشنری در پایتون مجموعهای از زوجهای کلید-مقدار را ذخیره میکند. به این معنی که هر کلید منحصربهفرد به یک مقدار مرتبط است. کلیدها میتوانند رشته، اعداد یا حتی اشیاء باشند، در حالی که مقادیر میتوانند از هر نوع دادهای، مانند رشتهها، اعداد، لیستها، دیکشنریها و موارد دیگر باشند.
2. ایجاد دیکشنری
ایجاد دیکشنری در پایتون بسیار ساده است. از تابع dict() به همراه مقادیر اولیه خود استفاده کنید. مقادیر اولیه میتوانند به صورت لیست زوجهای کلید-مقدار یا به صورت دیکشنری از پیش تعریف شده باشند.
# ایجاد دیکشنری از لیست زوجهای کلید-مقدار
student_data = {
"name": "John Doe",
"age": 15,
"grade": 9.5
}
# ایجاد دیکشنری از دیکشنری از پیش تعریف شده
another_dict = student_data.copy()
3. دسترسی به مقادیر دیکشنری
برای دسترسی به مقدار مرتبط با یک کلید خاص، از اپراتور [] یا روش get() استفاده کنید. اپراتور [] خطایی ایجاد میکند اگر کلید مورد نظر وجود نداشته باشد، در حالی که get() در صورت عدم وجود کلید، None را برمیگرداند.
# دسترسی به مقدار با استفاده از اپراتور []
student_name = student_data["name"]
print(student_name) # John Doe
# دسترسی به مقدار با استفاده از روش get()
student_age = student_data.get("age")
print(student_age) # 15
# دسترسی به مقدار با استفاده از get() و مقدار پیش فرض
student_city = student_data.get("city", "Unknown")
print(student_city) # Unknown
4. افزودن آیتم به دیکشنری
برای اضافه کردن یک زوج کلید-مقدار جدید به دیکشنری، از اپراتور [] یا روش update() استفاده کنید. اپراتور [] به طور مستقیم مقدار را به کلید موجود اضافه یا به روز میکند، در حالی که update() یک دیکشنری دیگر را به دیکشنری فعلی ادغام میکند.
# اضافه کردن آیتم با استفاده از اپراتور []
student_data["city"] = "New York"
print(student_data)
# اضافه کردن آیتم با استفاده از روش update()
another_dict = {"grade": 9.7}
student_data.update(another_dict)
print(student_data)
5. حذف آیتم از دیکشنری
برای حذف یک زوج کلید-مقدار از دیکشنری، از اپراتور del یا روش pop() استفاده کنید. اپراتور del کلید و مقدار مرتبط را حذف میکند، در حالی که pop() کلید و مقدار را حذف کرده و آن را برمیگرداند.
# حذف آیتم با استفاده از اپراتور del
del student_data["city"]
print(student_data)
# حذف آیتم با استفاده از روش pop()
student_grade = student_data.pop("grade")
print(student_grade) # 9.7
print(student_data)
6. پیمایش در دیکشنری
برای پیمایش در کلیدها یا مقادیر یک دیکشنری، از حلقه for استفاده کنید
برای پیمایش در کلیدها یا مقادیر یک دیکشنری، از حلقه for استفاده کنید. میتوانید با استفاده از for (key, value) in dict.items():
- در هر کلید و مقدار در دیکشنری تکرار شوید.
- یا با استفاده از
for key in dict.keys(): - فقط در کلیدهای دیکشنری تکرار شوید.
- یا با استفاده از
for value in dict.values(): - فقط در مقادیر دیکشنری تکرار شوید.
# پیمایش در کلیدها و مقادیر
for key, value in student_data.items():
print(f"{key}: {value}")
# پیمایش در کلیدها
for key in student_data.keys():
print(key)
# پیمایش در مقادیر
for value in student_data.values():
print(value)
7. به روز رسانی مقادیر دیکشنری
برای به روز رسانی مقدار مرتبط با یک کلید موجود، از اپراتور [] یا روش update() استفاده کنید.
# به روز رسانی مقدار با استفاده از اپراتور []
student_data["age"] = 16
print(student_data)
# به روز رسانی مقدار با استفاده از روش update()
student_data.update({"grade": 9.8})
print(student_data)
8. روشهای دیکشنری
دیکشنریها تعدادی روش مفید برای انجام وظایف مختلف ارائه میدهند، مانند بررسی اندازه دیکشنری، بررسی وجود کلید، پاک کردن دیکشنری و تبدیل دیکشنری به انواع داده دیگر.
len(): اندازه دیکشنری را برمیگرداند.in: برای بررسی وجود یک کلید در دیکشنری استفاده میشود.clear(): تمام زوجهای کلید-مقدار را از دیکشنری حذف میکند.copy(): یک کپی از دیکشنری ایجاد میکند.
print(len(student_data)) # تعداد زوجهای کلید-مقدار را چاپ میکند
print("age" in student_data) # True
student_data.clear() # تمام زوجهای کلید-مقدار را حذف میکند
print(student_data) # دیکشنری خالی را چاپ میکند
new_dict = student_data.copy()
print(new_dict) # کپی از دیکشنری خالی را چاپ میکند
9. مثالهای کاربردی
دیکشنریها در طیف گستردهای از برنامهها در پایتون مفید هستند، از جمله:
ذخیره اطلاعات مربوط به اشیاء یا موجودیتها:
class Student:
def __init__(self, name, age, grade):
self.name = name
self.age = age
self.grade = grade
student1 = Student("Alice", 14, 9.2)
student_data = {
"name": student1.name,
"age": student1.age,
"grade": student1.grade
}
print(student_data)
ایجاد جدول جستجو:
phonebook = {
"John Doe": "123-456-7890",
"Jane Doe": "987-654-3210",
"Peter Jones": "555-123-4567"
}
name = input("نام مورد نظر را وارد کنید: ")
if name in phonebook:
print(f"{name}: {phonebook[name]}")
else:
print(f"{name} در دفترچه تلفن یافت نشد.")
تجزیه و تحلیل دادهها:
data = {"apple": 10, "banana": 20, "orange": 15}
total_fruits = 0
for value in data.values():
total_fruits += value
print(f"تعداد کل میوهها: {total_fruits}")
10. منابع مفید
- مجموعهها در پایتون:جامعترین آموزش برنامه نویسی پایتون در ایران
- دیکشنریها در پایتون: https://www.w3schools.com/python/python_dictionaries.asp