از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
کلیدها و مقادیر را از دیکشنری در پایتون دریافت کنید
سرفصلهای مطلب
معرفی
دیکشنری در پایتون یک ساختار داده داخلی ضروری و قوی است که با ایجاد رابطه بین کلیدها و مقادیر امکان بازیابی کارآمد داده ها را فراهم می کند. این مجموعه ای نامرتب از جفت های کلید-مقدار است که در آن مقادیر به جای یک ترتیب خاص، تحت یک کلید خاص ذخیره می شوند.
در این مقاله نگاهی به رویکردهای مختلف برای دسترسی به کلیدها و مقادیر در فرهنگ لغت خواهیم داشت. ما نمونه های گویا را مرور خواهیم کرد و زمینه های مناسب برای هر رویکرد را مورد بحث قرار خواهیم داد.
آناتومی مختصر یک فرهنگ لغت
دیکشنری در پایتون چیست؟
می توانید با فکر کردن در مورد فرهنگ لغت های فیزیکی سنتی، یک فرهنگ لغت پایتون را تجسم کنید. فرهنگ لغت key
شبیه کلمه ای است که می خواهیم آن را جستجو کنیم، و the value
مانند تعریف مربوط به کلمه در فرهنگ لغت است. از نظر ساختار داده پایتون، دیکشنری ها ظرف هایی هستند که می توانند اشیاء دیگری را در خود جای دهند. بر خلاف توالی های مرتب شده یا نمایه شده (مانند لیست ها)، فرهنگ لغت نگاشت هایی هستند که یک نام متمایز یا مشخص می کنند. key
به هر عنصر
بلوک های سازنده یک فرهنگ لغت
یک کلید در فرهنگ لغت به عنوان یک شناسه منحصر به فرد عمل می کند که به ما امکان می دهد اطلاعات خاصی را پیدا کنیم. کلیدها می توانند از هر نوع تغییر ناپذیری باشند (به عنوان مثال رشته ها، اعداد، تاپل ها). داده های مرتبط با هر کلید a نامیده می شود value
، و می تواند قابل تغییر باشد.
هر نوع داده ای مانند رشته، عدد، فهرست یا حتی فرهنگ لغت دیگر قابل قبول است value
. ترکیب این جفتهای کلید-مقدار به شکل چند تایی نمایش داده میشود که به نام دیکشنری شناخته میشود items
. این کلیدها، مقادیر و موارد در مجموع ساختار اصلی یک فرهنگ لغت را تشکیل می دهند. بیایید بررسی کنیم که چگونه می توانیم این عناصر را بازیابی کنیم.
برای نشان دادن این موضوع، اجازه دهید ابتدا یک فرهنگ لغت کتاب آدرس ساده بسازیم. کلیدها نام افراد را نشان می دهند و مقادیر مربوطه حاوی آدرس های حمل و نقل مرتبط با آنها است. می توانیم آن را به صورت زیر بسازیم:
address_book = {
"Alicia Johnson": "123 Main Street, Cityville",
"Jerry Smith": "456 Corner Avenue, Townsville",
"Michael Jonas": "789 End Lane, Villageville"
}
ما می توانیم ساختار فرهنگ لغت ساده خود را به صورت زیر تجسم کنیم:
دریافت کلید در فرهنگ لغت
بازیابی کلید با استفاده از کلیدها() روش
را keys()
متد یک دیکشنری یک شی فهرست مانند حاوی تمام کلیدهای فرهنگ لغت را برمی گرداند. می توانیم این روش را نام ببریم روی ما address_book
مانند زیر:
address_keys = address_book.keys()
print(address_keys)
این به ما می دهد:
dict_keys(('Alicia Johnson', 'Jerry Smith', 'Michael Jonas'))
خروجی برگردانده شده در بالا a است dict_keys
شی حاوی کلیدهای address_book
فرهنگ لغت. مزیت این روش این است که میتوانیم بیشتر از آن تکرار کنیم dict_keys
شی، آن را به یک لیست تبدیل کنید، یا از آن به روش دیگری برای دسترسی به کلیدهای جداگانه استفاده کنید. برای مثال، بیایید از کلیدهایی که استخراج کردهایم برای پیدا کردن نام کوچک هر فرد استفاده کنیم:
for k in address_keys:
print(k.split()(0))
و دریافت می کنیم:
Alicia
Jerry
Michael
بازیابی کلید با استفاده از in
اپراتور
دیکشنری ها در پایتون از تکرار پشتیبانی می کنند، به این معنی که می توانیم عناصر آنها را حلقه بزنیم و عضویت را با استفاده از in
اپراتور. این رویکرد همه کاره، هر کلید را بهجای یک شی فهرستمانند، بهصورت جداگانه برمیگرداند.
بیایید از یک ساده استفاده کنیم for-loop
و in
عملگر به عنوان یک راه جایگزین برای بازگرداندن کلیدهای فرهنگ لغت:
for k in address_book:
print(k)
ما یک خروجی مشابه با بالا دریافت می کنیم:
Alicia Johnson
Jerry Smith
Michael Jonas
در اینجا، بیان k in address_book
یک کلید را در فرهنگ لغت جستجو می کند، نه یک فهرست یا یک مقدار. توجه داشته باشید که دیکشنری ها ترتیب جفت ها را حفظ نمی کنند، پس اعتماد نکنید روی ترتیب آیتم ها هنگام چرخش بر روی فرهنگ لغت.
چگونه ارزش ها را در فرهنگ لغت به دست آوریم
اکنون که روش بازیابی کلیدهای فرهنگ لغت را دیدیم، بیایید برخی از رویکردهای مختلف را برای دریافت مقادیر مربوطه از فرهنگ لغت خود ببینیم.
بازیابی مقدار با کلید با استفاده از براکت های مربع
مقادیر در یک فرهنگ لغت مستقیماً با کلیدهای مربوطه قابل دسترسی هستند. از آنجایی که هر کلید دقیقاً به یک مقدار مربوط می شود، می توانیم با استفاده از عملگر کروشه به مقادیر دسترسی پیدا کنیم روی شی دیکشنری
به عنوان مثال، بیایید سعی کنیم آدرس جری اسمیت را پیدا کنیم:
print(address_book('Jerry Smith'))
آدرس آنها را به صورت زیر دریافت می کنیم:
456 Corner Avenue, Townsville
بازیابی ارزش با استفاده از گرفتن() روش
یک اشکال عمده عملگر براکت که در بالا استفاده کردیم این است که a را برمی گرداند KeyError
زمانی که سعی می کنیم به آیتمی که در فرهنگ لغت وجود ندارد دسترسی پیدا کنیم. به عنوان مثال، بیایید به دنبال مشتری غیر موجود “بریتا فیلیپس” باشیم:
print(address_book('Brita Philips'))
خطای زیر را دریافت می کنیم:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
print(address_book('Brita Philips'))
KeyError: 'Brita Philips'
برای جلوگیری از این، می توانیم از get()
متد، که اگر مقدار را در فرهنگ لغت وجود داشته باشد، و در غیر این صورت یک مقدار پیشفرض را برمیگرداند. بیایید تلاش کنیم:
print(address_book.get('Brita Philips'))
خروجی اکنون تمیزتر است و برمی گردد None
به جای الف KeyError
:
None
اگر می خواهید هر مقدار پیش فرض دیگری را به جای آن برگردانید None
، می توانید خود را مشخص کنید:
print(address_book.get('Brita Philips', 'Not a person'))
و دریافت می کنیم:
Not a person
بازیابی ارزش با استفاده از ارزش های() روش
را values()
متد یک شی فهرست مانند را برمی گرداند که حاوی مقادیر فرهنگ لغت است. برای مثال:
print(address_book.values())
این به ما می دهد:
dict_values(('123 Main Street, Cityville', '456 Corner Avenue, Townsville', '789 End Lane, Villageville'))
همانطور که ممکن است قبلاً حدس زده باشید، امکان تکرار بیشتر در مورد بازگشت داده شده وجود دارد dict_values
هدف – شی. همچنین ممکن است متوجه شده باشید که هیچ روش مناسبی برای گرفتن کلید از یک مقدار وجود ندارد. این به این دلیل است که داشتن مقادیر تکراری کاملاً ممکن است، در حالی که کلیدها باید در یک فرهنگ لغت منحصر به فرد باشند.
جفت های کلید و ارزش را از دیکشنری به طور همزمان دریافت کنید
ما اغلب نیاز داریم که جفت کلید-مقدار کامل (نامیده می شود) را بازیابی کنیم item
) از یک فرهنگ لغت. چند راه مختلف برای انجام این کار وجود دارد.
بازیابی کلید-مقدار با استفاده از موارد() روش
را items()
متد یک شیء تکرار شونده لیست مانند را برمی گرداند که هر جفت کلید-مقدار را به صورت یک تاپل به دست می دهد. هر کالای برگشتی به شکلی است (key, value)
.
در مثال ما، این به صورت زیر است:
print(address_book.items())
این به ما می دهد:
dict_items((('Alicia Johnson', '123 Main Street, Cityville'), ('Jerry Smith', '456 Corner Avenue, Townsville'), ('Michael Jonas', '789 End Lane, Villageville')))
استفاده از حلقه For با موارد() روش
را items()
روش به ما داد dict_items
شی در مثال بالا. ما می توانیم هر جفت را با استفاده از a باز کنیم for
بیانیه به شرح زیر
for key, value in address_book.items():
print(key, "=>", value)
این نتیجه می دهد:
Alicia Johnson => 123 Main Street, Cityville
Jerry Smith => 456 Corner Avenue, Townsville
Michael Jonas => 789 End Lane, Villageville
درک لیست با باز کردن بسته بندی تاپل برای آیتم های دیکشنری
استفاده از درک لیست یک روش کارآمد برای بازگرداندن کلید و مقدار با هم در یک عملیات واحد بدون نیاز به جستجوی کلید جداگانه است.
مثلا:
addresses = (key + " => " + value for key, value in address_book.items())
print(addresses)
ما گرفتیم:
('Alicia Johnson => 123 Main Street, Cityville', 'Jerry Smith => 456 Corner Avenue, Townsville', 'Michael Jonas => 789 End Lane, Villageville')
برای کسب اطلاعات بیشتر در مورد درک فرهنگ لغت، می توانید راهنمای ما برای درک فرهنگ لغت در پایتون را بخوانید.
### Conclusion
Retrieving keys and values from Python dictionaries is a widely-used and fundamental operation in data handling. We have seen that dictionaries are an incredibly efficient and versatile way of checking for key membership. This article has provided an overview of different methods to extract keys, values, and pairs from dictionaries.
(برچسبها به ترجمه)# python
منتشر شده در 1402-12-31 05:23:04