منو سایت

  • خانه
  • وبلاگ
  • Python نحوه دسترسی به فرهنگ لغت تودرتو (با بیش از 5 مثال)

Python نحوه دسترسی به فرهنگ لغت تودرتو (با بیش از 5 مثال)

 تاریخ انتشار :
/
  وبلاگ
Python نحوه دسترسی به فرهنگ لغت تودرتو (با بیش از 5 مثال)

برای دسترسی به فرهنگ لغت تودرتو در پایتون، دو بار (یا بیشتر) عملگر دسترسی را اعمال کنید.

به عنوان مثال، اجازه دهید به نام فرهنگ لغت دانش آموزی با شناسه دانشجویی 123:

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

name = students[123]['name']
print(name)

خروجی:

Alice

این راهنما به شما می آموزد که چگونه به دیکشنری های تو در تو در پایتون دسترسی داشته باشید. همچنین یاد می گیرید که چگونه یک فرهنگ لغت تودرتو ایجاد کنید، به عناصر دسترسی داشته باشید و آنها را تغییر دهید. من مجموعه‌ای از مثال‌های مفید و سناریوهای مختلف را درج کرده‌ام که ممکن است نیاز به انجام این کار داشته باشید.

دیکشنری در پایتون چیست؟

و فقط در صورتی که با فرهنگ لغت ها تازه کار هستید، دیکشنری مجموعه ای نامرتب از آیتم های دارای برچسب است.

student = {'name' : 'Alice', 'age': '23'}

یک فرهنگ لغت سنتی “یک بعدی” دارای جفت های کلید-مقدار است، همانطور که در بالا مشخص شد. کلید، برچسب مقداری است که به آن اشاره دارد.

به عنوان مثال، می توانید نام و سن دانش آموزان را در فرهنگ لغت فوق با باز کردن آن با کلیدهای زیر دریافت کنید:

name = student["name"]
age = student["age"]

خوب، این فقط یک خلاصه سریع از نحوه کار فرهنگ لغت پایتون و نحوه دسترسی به مقادیر آن است.

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

کلمه “تودرتو” به اشیاء مشابهی اطلاق می شود که در داخل یکدیگر قرار می گیرند. لغت نامه های تو در تو در پایتون به معنای قرار دادن دیکشنری ها در دیکشنری ها است.

به عنوان مثال، در اینجا تعبیه شده است دانش آموزان فرهنگ لغت متشکل از داده های چند دانش آموز مرتبط با شناسه دانشجویی سه رقمی:

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

اینجا دانش آموزان فرهنگ لغت نامه هایی است که StudentID یک کلید و StudentDataDictionary یک مقدار است.

چگونه به یک دیکشنری تو در تو دسترسی پیدا کنیم؟

برای دسترسی به مقدار دیکشنری تو در تو در پایتون، باید:

  1. با کلید آن به فرهنگ لغت داخل دیکشنری دسترسی پیدا کنید.
  2. با استفاده از کلید مرتبط به مقدار فرهنگ لغت قابل دسترسی دسترسی پیدا کنید.

بیایید دسترسی به مقادیر تودرتو را بررسی کنیم دانش آموزان واژگان بخش قبل

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

برای انتخاب دانش آموز از دانش آموزان فرهنگ لغت، شناسه دانشجویی دانش آموز خاص باید مشخص باشد.

فرض کنید من در حال تلاش آلیس برای دسترسی به داده های دانش آموز خود از پایگاه داده دانش آموز هستم. من می دانم که شماره دانشجویی من 123 است. بنابراین می توانم به فرهنگ لغت با این مقدار دسترسی داشته باشم:

alice = students[123]
print(alice)

خروجی:

{'name': 'Alice', 'age': '23'}

این با موفقیت داده های فرهنگ لغت مرتبط با آلیس را نمایش می دهد.

برای دسترسی به یک مقدار خاص در داده ها، دوباره با اپراتور دسترسی فرهنگ لغت در فرهنگ لغت داده ای که به آن دسترسی داشتید تماس بگیرید.

به عنوان مثال، فرض کنید می خواهم فقط نام دانش آموز با شناسه 123 را بررسی کنم:

name = students[123]['name']
print(name)

خروجی:

Alice

همانطور که می بینید، در کد بالا ابتدا به داده های دیکشنری مرتبط با ID 123 دسترسی دارم. از آنجایی که این مقدار نیز یک دیکشنری است، می توانم به همین ترتیب به مقادیر آن دسترسی داشته باشم.

البته، می توانید روند را به این ترتیب تقسیم کنید:

  1. به فرهنگ لغت داخلی دسترسی پیدا کنید و آن را در یک متغیر ذخیره کنید.
  2. به مقدار متغیر دیکشنری داخلی دسترسی پیدا کنید و آن را در متغیر دیگری ذخیره کنید.

مثلا:

student = students[123]
name = student["name"]

print(name)

خروجی:

Alice

دسترسی ایمن تر به دیکشنری های تو در تو

تاکنون مشاهده کرده‌اید که چگونه می‌توانید به مقادیر فرهنگ لغت دسترسی داشته باشید، بدون اینکه فکر کنید اگر کلید وجود نداشته باشد چه اتفاقی می‌افتد.

بیایید مطالعه را با دانش آموزان فرهنگ لغت.

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

درک این نکته مهم است که در مثال قبلی فرض کردید که کلید در دیکشنری مانند این وجود دارد.

اما بیایید ببینیم اگر اینطور نباشد چه اتفاقی می افتد.

به عنوان مثال، بیایید سعی کنیم مشخصات دانشجویی دانش آموزی با شناسه 999 را پیدا کنیم:

student = students[999]
print(student)

این منجر به خطایی می شود که برنامه را از کار می اندازد.

Traceback (most recent call last):
  File "<string>", line 6, in <module>
KeyError: 999

اگر شخصی به طور تصادفی مقدار اشتباهی را وارد فرهنگ لغت کند، نمی خواهید کل برنامه از کار بیفتد.

برای جلوگیری از این، می توانید استفاده کنید Dictionary.get() روشی برای دسترسی ایمن تر به مقادیر اگر کلید ارسال شده به این تابع وجود نداشته باشد، برنامه از کار نمی افتد.

مثلا:

student = students.get(999)
print(student)

خروجی:

None

همانطور که می بینید، نتیجه این است هیچ یک به جای خطا این خیلی بهتر از خراب کردن برنامه است.

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

  1. زنگ زدن Dictionary.get() روش دیکشنری تو در تو برای دسترسی به فرهنگ لغت داخلی.
  2. از if-else استفاده کنید تا مطمئن شوید که فرهنگ لغت برگشتی وجود ندارد هیچ یک.
  3. زنگ زدن Dictionary.get() در فرهنگ لغت داخلی برای دریافت مقدار مربوطه.

به عنوان مثال:

student = students.get(999)

if student != None:
    name = student.get('name')
    print(name)
else:
    print("Value not found")

خروجی:

Value not found

چون کلیدی وجود ندارد 999 که در دانش آموزان فرهنگ لغت، فرهنگ لغت داخلی برگشت داده شد هیچ یک. به این ترتیب، تنها یک چیز دیگر بلوک اجرا شد

برای مرجع، بیایید مطمئن شویم که این کد در صورت وجود کلید نیز کار می کند.

student = students.get(123)

if student != None:
    name = student.get('name')
    print(student)
else:
    print("Value not found")

خروجی:

Alice

همانطور که می بینید، این یک راه امن تر برای دسترسی به مقادیر فرهنگ لغت تو در تو است. صرف نظر از وجود یا عدم وجود مقادیر، برنامه با خطا از کار نمی افتد.

چگونه به فرهنگ لغت تودرتو مقدار اضافه کنیم؟

برای وارد کردن یک مقدار جدید در فرهنگ لغت تودرتو، باید دوباره از عملگر دسترسی فرهنگ لغت استفاده کنید.

به عنوان مثال، بیایید یک کلید سرگرمی جدید به یکی از اشیاء دانش آموز در آن اضافه کنیم دانش آموزان واژگان:

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

students[123]['hobbies'] = ['Jogging', "Tennis", "Disc Golf"]

print(students)

خروجی:

{123: {'name': 'Alice', 'age': '23', 'hobbies': ['Jogging', 'Tennis', 'Disc Golf']}, 321: {'name': 'Bob', 'age': '34'}}

توجه داشته باشید که این مثال فقط در صورتی کار می کند که کلید باشد 123 وجود دارد. اگر این کار را نکرد، برنامه از کار می افتد. بنابراین فراموش نکنید که قبل از افزودن مقداری به آن، بررسی کنید که آیا کلید در فرهنگ لغت وجود دارد یا خیر!

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

target = 999
if target in students:
    students[target]['hobbies'] = ['Jogging', "Tennis", "Disc Golf"]

چگونه یک مقدار را از دیکشنری تو در تو حذف کنیم؟

حذف یک مقدار از یک فرهنگ لغت تودرتو با حذف یک مقدار از یک فرهنگ لغت تک بعدی تفاوتی ندارد. تنها کاری که باید انجام دهید دسترسی به مقدار و تماس است بخش اپراتور آن

مثلاً حذف کنیم نام دانشجویی با کارت شناسایی 123:

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

del students[123]['name']

print(students)

خروجی:

{123: {'age': '23'}, 321: {'name': 'Bob', 'age': '34'}}

چگونه یک دیکشنری دیگر را به دیکشنری تو در تو اضافه کنیم؟

افزودن یک فرهنگ لغت جدید به یک فرهنگ لغت تودرتو با افزودن یک مقدار جدید به یک فرهنگ لغت معمولی تفاوتی ندارد. به جای اینکه یک مقدار به یک کلید اضافه کنید، یک فرهنگ لغت کامل را اضافه می کنید.

برای افزودن یک جفت کلید-مقدار جدید به فرهنگ لغت، از عملگر دسترسی به فرهنگ لغت استفاده کنید. کلید و آرگومان جدید را به اپراتور دسترسی ارسال کنید و به آن یک مقدار اختصاص دهید.

به عنوان مثال، بیایید یک فرهنگ لغت دانشجویی جدید به آن اضافه کنیم دانش آموزان واژگان:

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

students[999] = {'name' : 'Charlie', 'age': '20'}

print(students)

خروجی:

{123: {'name': 'Alice', 'age': '23'}, 321: {'name': 'Bob', 'age': '34'}, 999: {'name': 'Charlie', 'age': '20'}}

اکنون سه دانش آموز در فرهنگ لغت وجود دارد.

چگونه از طریق یک فرهنگ لغت تودرتو تکرار کنیم؟

بار دیگر، هیچ چیز پیچیده ای در مورد تکرار بیش از فرهنگ لغت نامه وجود ندارد.

برای تکرار بر روی یک فرهنگ لغت در پایتون، استفاده کنید Dictionary.items() روش تبدیل فرهنگ لغت به فرمت تکرارپذیر. سپس کلید و مقدار را به متغیرهای موقت اختصاص دهید.

به عنوان مثال، بیایید نام فرهنگ لغت دانش آموزان را چاپ کنیم:

students = {
    123: {'name' : 'Alice', 'age': '23'},
    321: {'name' : 'Bob', 'age': '34'}
}

for key, value in students.items():
    print(f"{key}: {value['name']}")

خروجی:

123: Alice
321: Bob

نتیجه

امروز یاد گرفتید که چگونه به دیکشنری های درون دیکشنری دسترسی داشته باشید. به عبارت دیگر، نحوه کار با دیکشنری های تودرتو را یاد گرفتید.

به طور خلاصه، دیکشنری تودرتو نامی است که برای نشان دادن فرهنگ لغتی استفاده می شود که مقادیر آن نیز دیکشنری هستند.

برای دسترسی به این دیکشنری های تو در تو در داخل دیکشنری ها، همان قوانین دسترسی به فرهنگ لغت اعمال می شود.

  1. ابتدا با کلید آن وارد دیکشنری داخلی شوید.
  2. سپس با استفاده از کلیدهایی که دارد به مقادیر دیکشنری داخلی دسترسی پیدا کنید.

با تشکر برای خواندن. کد نویسی مبارک!

همچنین بخوانید