دیکشنریها در پایتون
تعریف دیکشنری، کلید-مقدار، متدها، پیمایش و کاربردهای آن
دیکشنری چیست؟
دیکشنری (Dictionary) ساختار دادهای است که دادهها را بهصورت جفتهای کلید-مقدار (Key-Value) ذخیره میکند. مثل یک لغتنامه واقعی — کلمه (کلید) و معنی (مقدار).
تعریف دیکشنری
# با آکولاد
person = {
"name": "علی",
"age": 25,
"city": "تهران"
}
# با تابع dict()
person2 = dict(name="مریم", age=30, city="شیراز")
# دیکشنری خالی
empty = {}
دسترسی به مقادیر
person = {"name": "علی", "age": 25}
# با کلید
print(person["name"]) # علی
# با get (امنتر — خطا نمیدهد)
print(person.get("age")) # 25
print(person.get("email")) # None
print(person.get("email", "ندارد")) # ندارد (مقدار پیشفرض)
اگر کلیدی وجود نداشته باشد،
dict[key] خطا میدهد! اما dict.get(key) خطا نمیدهد و None برمیگرداند.افزودن و تغییر
person = {"name": "علی"}
# افزودن کلید جدید
person["age"] = 25
# تغییر مقدار موجود
person["name"] = "علی رضایی"
print(person) # {'name': 'علی رضایی', 'age': 25}
حذف
person = {"name": "علی", "age": 25, "city": "تهران"}
# del
del person["city"]
# pop (مقدار را برمیگرداند)
age = person.pop("age")
# popitem (آخرین مورد)
last = person.popitem()
# clear
person.clear()
پیمایش دیکشنری
person = {"name": "علی", "age": 25, "city": "تهران"}
# کلیدها
for key in person:
print(key)
# کلید و مقدار
for key, value in person.items():
print(f"{key}: {value}")
# فقط کلیدها
for key in person.keys():
print(key)
# فقط مقادیر
for value in person.values():
print(value)
بررسی وجود کلید
person = {"name": "علی", "age": 25}
print("name" in person) # True
print("email" not in person) # True
طول دیکشنری
print(len(person)) # 2
متدهای مهم
| متد | توضیح |
|---|---|
keys() | لیست کلیدها |
values() | لیست مقادیر |
items() | جفتهای کلید-مقدار |
get(key) | دریافت امن مقدار |
update(d) | بهروزرسانی با دیکشنری دیگر |
copy() | کپی دیکشنری |
clear() | خالی کردن |
update() — ترکیب دیکشنریها
person = {"name": "علی", "age": 25}
extra = {"city": "تهران", "email": "ali@test.com"}
person.update(extra)
print(person)
# {'name': 'علی', 'age': 25, 'city': 'تهران', 'email': 'ali@test.com'}
دیکشنری تو در تو
students = {
"علی": {"age": 20, "grade": 18.5},
"مریم": {"age": 22, "grade": 19.2},
}
print(students["علی"]["grade"]) # 18.5
قوانین کلیدها
- کلید باید یکتا باشد (تکراری مجاز نیست)
- کلید باید تغییرناپذیر باشد (str, int, tuple)
- لیست نمیتواند کلید باشد!
# کلیدهای معتبر
d = {
"name": "علی", # str
42: "عدد", # int
(1, 2): "تاپل" # tuple
}
# کلید نامعتبر
# d = {[1, 2]: "لیست"} # ❌ خطا!
Dictionary Comprehension
# ساخت دیکشنری از لیست
numbers = [1, 2, 3, 4, 5]
squares = {n: n**2 for n in numbers}
print(squares) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
مثال کاربردی: شمارش
text = "سلام سلام دنیا پایتون سلام"
words = text.split()
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
print(word_count) # {'سلام': 3, 'دنیا': 1, 'پایتون': 1}
خلاصه
| عملیات | سینتکس |
|---|---|
| دسترسی | d[key] یا d.get(key) |
| افزودن/تغییر | d[key] = value |
| حذف | del d[key] یا d.pop(key) |
| پیمایش | for k, v in d.items() |
| کلیدها | d.keys() |
| مقادیر | d.values() |
این مبحث بخشی از دوره آموزش کامل پایتون است.