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

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

dict
آموزش مقدماتی پایتون

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

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

# دیکشنری خالی
empty_dict = {}

# دیکشنری ساده
user = {"name": "Sara", "age": 28}
patient_record = {
    "patient_id": 1042,                  # عدد صحیح
    "name": "Mina",                     # رشته
    "is_admitted": True,                # بولین
    "heart_rate_avg": 72.4,             # اعشاری
    "leads": ["Lead I", "Lead II"],     # لیست
    "metadata": {"sampling_rate": 500}  # دیکشنری تودرتو
}
info = {"brand": "Tesla", "model": "Model 3"}
print(info["brand"])  # خروجی: 'Tesla'
patient = {"name": "Ali", "age": 45}
status = patient.get("insurance", "نامشخص")
print(status)  # خروجی: نامشخص

متد keys()

readings = {"temp": 24.5, "pressure": 101.3, "humidity": 60}
sensor_list = readings.keys()
print(sensor_list)  # خروجی: dict_keys(['temp', 'pressure', 'humidity'])
grades = {"Math": 18.5, "Physics": 17.0, "Programming": 20.0}
all_scores = grades.values()
print(all_scores)  # خروجی: dict_values([18.5, 17.0, 20.0])
errors = {404: "Not Found", 500: "Server Error"}
for code, msg in errors.items():
    print(f"Error {code}: {msg}")
# خروجی:
# Error 404: Not Found
# Error 500: Server Error
user_profile = {"id": 101, "name": "Reza"}
user_profile.update({"phone": "09120000000", "name": "Reza Rahimi"})
print(user_profile)  # خروجی: {'id': 101, 'name': 'Reza Rahimi', 'phone': '09120000000'}
session = {"user": "admin", "token": "xyz123"}
token = session.pop("token")
print("توکن حذف شده:", token)    # خروجی: xyz123
print("دیکشنری باقی‌مانده:", session) # خروجی: {'user': 'admin'}
  • توضیح: آخرین جفت (کلید، مقدار) اضافه‌شده به دیکشنری را حذف کرده و به شکل یک تاپل برمی‌گرداند.
  • صورت مسئله: می‌خواهیم آخرین ورودی پردازش‌نشده را از لاگ موقت خارج کنیم.
logs = {"log1": "OK", "log2": "WARN", "log3": "FAIL"}
last_entry = logs.popitem()
print("حذف شد:", last_entry)  # خروجی: ('log3', 'FAIL')
print("لاگ‌ها:", logs)         # خروجی: {'log1': 'OK', 'log2': 'WARN'}

متد setdefault(key, default)

user_role = {"username": "mina_n"}
role = user_role.setdefault("role", "viewer")
print("نقش:", role)          # خروجی: viewer
print(user_role)             # خروجی: {'username': 'mina_n', 'role': 'viewer'}
config = {"theme": "dark", "volume": 80}
config_backup = config.copy()
config["volume"] = 90
print("اصلی:", config)        # خروجی: {'theme': 'dark', 'volume': 90}
print("پشتیبان:", config_backup) # خروجی: {'theme': 'dark', 'volume': 80}
cache = {"page1": "cached_data", "page2": "cached_data"}
cache.clear()
print(cache)  # خروجی: {}
ports = [80, 443, 8080]
port_status = dict.fromkeys(ports, "closed")
print(port_status)  # خروجی: {80: 'closed', 443: 'closed', 8080: 'closed'}
dict_a = {"x": 10, "y": 20}
dict_b = {"x": 5, "y": 15}

# دستور زیر با خطای TypeError مواجه می‌شود:
# result = dict_a + dict_b

مثال ۱: شمارش بسامد و فرکانس تکرار داده‌ها

classes = ["NORM", "MI", "STTC", "NORM", "MI", "NORM"]
counts = {}

for label in classes:
    if label in counts:
        counts[label] += 1
    else:
        counts[label] = 1

print("تعداد هر کلاس:", counts)
# خروجی: {'NORM': 3, 'MI': 2, 'STTC': 1}

مثال ۲: سیستم مدیریت موجودی انبار فروشگاه

inventory = {"apple": 50, "banana": 20, "orange": 35}

# فروش ۱۰ عدد سیب
inventory["apple"] -= 10

# افزودن کالای جدید
inventory["grape"] = 40

print("موجودی به‌روز انبار:", inventory)
# خروجی: {'apple': 40, 'banana': 20, 'orange': 35, 'grape': 40}

مثال ۳: ساخت دفترچه تلفن و جست‌وجوی مستقیم

phonebook = {
    "Ali": "09121111111",
    "Sara": "09122222222",
    "Mina": "09123333333"
}

contact_name = "Sara"
if contact_name in phonebook:
    print(f"شماره {contact_name}: {phonebook[contact_name]}")
else:
    print("مخاطب یافت نشد.")
# خروجی: شماره Sara: 09122222222

فکر خود را اینجا بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *