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

تعریف دیکشنری، کلید-مقدار، متدها، پیمایش و کاربردهای آن

دیکشنری چیست؟

دیکشنری (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

قوانین کلیدها

# کلیدهای معتبر
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()

این مبحث بخشی از دوره آموزش کامل پایتون است.

ابزارهای مرتبط