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

فهرست مطالب این نوشته
997696

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

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

دیکشنری‌های پایتون، نمونه‌ای از کلاسِ «درونیِ» (Built-In) dict

 در پایتون هستند. این اشیا برای کار به متدهای زیادی دسترسی دارند. در فهرست زیر، مهمترین گزینه‌های موجود در متدهای‌های دیکشنری را همراه با توضیح مختصری برای هرکدام معرفی کرده‌ایم.

  1. dict.clear()

     : همه عناصر دیکشنری dict

    را حذف می‌کند.

  2. dict.copy()

     : کپی سطحی از دیکشنری dict

    ایجاد کرده و برمی‌گرداند.

  3. dict.fromkeys()

     : این متد، دیکشنری جدیدی ایجاد می‌کند. متد dict.fromkeys()

    کلید‌ها را از روی توالی مشخص شده‌ای -مانند لیست- و مجموعه مقادیری را از مقادیر تعیین شده انتخاب می‌کند. البته اگر مقدار خاصی ارائه نشده باشد به صورت پیش‌فرض به ازای Value مربوط به هر کلید، مقدار None تنظیم می‌شود.

  4. dict.get(key, default=None)

     : متد get()

     یکی از متدهای دیکشنری در پایتون است که مقدار مربوط به هر کلید مشخص شده‌ را از دیکشنری dict

    برمی‌گرداند.

  5. dict.has_key(key)

     : اگر کلید داده شده در دیکشنری dict

    موجود باشد مقدار True

     و در غیر این صورت مقدار False

     برمی‌گرداند. البته استفاده از این متد، در حال حاضر مرسوم نیست که در ادامه به صورت کامل توضیح داده‌ایم.

  6. dict.items()

     : لیستی از عناصر دیکشنری dict

    را به صورت تاپل‌های حاوی جفت‌های کلید و مقدار برمی‌گرداند.

  7. dict.keys()

     : کلید‌های دیکشنری dict

    را جمع کرده و به صورت عناصر درون لیست پایتونی برمی‌گرداند.

  8. dict.pop()

     : عنصر مربوط به کلید مشخص شده را از دیکشنری حذف کرده و برمی‌گرداند.

  9. dict.popitem()

     : این متد، جفت کلید و مقدار دلخواه را از دیکشنری حذف کرده و برمی‌گرداند.

  10. dict.setdefault(key, default=None)

     : این متد، شبیه به متد get()

    است. اما اگر کلید از قبل در دیکشنری dict

    موجود نباشد، مقدار کلید را به صورت dict[key]=default

     تنظیم می‌کند.

  11. dict.update(dict2)

     : جفت‌های کلید و مقدار دیکشنری dict2

     را به دیکشنری dict

    اضافه می‌کند.

  12. dict.values()

     : لیستی از مقادیر درون دیکشنری را برمی‌گرداند.

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

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

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

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

مجموعه آموزش پایتون
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی این مجموعه آموزشی انتقال پیدا کنید.

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

در ادامه به بررسی هر کدام از متدهای فهرست شده در بخش قبل پرداخته‌ایم.

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

در این بخش از مطلب، همه متدهایی که در قسمت قبل معرفی شده‌اند را با ذکر مثال‌های کدنویسی شده توضیح داده‌ایم.

متد clear

متد clear()

 در پایتون یکی از متدهای دیکشنری است که همه آیتم‌های درون دیکشنری را حذف کرده و داخل دیکشنری را پاک می‌کند. اسم متدها در پایتون مطابق با رفتار آن‌ها تعیین می‌شود که در این مورد هم می‌توان این مطابقت را به وضوح دید. متد clear()

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

سینتکس متد

شکل پایه سینتکس این متد، پایتونی برای کار با دیکشنری با نام فرضی dict

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

پارامترهای دریافتی و مقدارهای برگشتی

این متد، هیچ پارامتری به عنوان داده ورودی دریافت نمی‌کند. مقدار برگشت داده شده توسط متد clear()

از دیکشنری برابر با None است.

روش استفاده از متد clear در پایتون

در این بخش سه مثال ساده را درباره عملکرد متد clear()

نمایش داده‌ایم.

مثال اول

در این مثال با استفاده از متد clear()

همه عناصر درون دیکشنری را حذف می‌کنیم.

1dict1 = {'a': 1, 'b': 2, 'c': 3}
2dict1.clear()
3print(dict1) # Output: {}

خروجی کد بالا فقط یک جفت آکولاد خالی {}

 است.

مثال دوم

اگر متد clear()

را بر روی دیکشنری خالی فراخوانی کنیم، در نتیجه این متد، همان دیکشنری خالی را برمی‌گرداند.

1dict2 = {}
2dict2.clear()
3print(dict2) # Output: {}

خروجی کد بالا هم فقط یک جفت آکولاد خالی {}

است.

مثال سوم

متد clear()

در خروجی هیچ مقدار مشخصی برنمی‌گرداند. تنهای مقدار برگشت داده شده توسط این متد، برابر با None

است.

1dict3 = {'x': 10, 'y': 20, 'z': 30}
2result = dict3.clear()
3print(result) # Output: None

خروجی کد بالا بعد از اجرای برنامه برابر با None

 است.

متد copy

متد copy()

 ، یکی از توابع پایتون درونی برای کار با دیکشنری‌ها است. با کمک این متد، کپی سطحی از روی دیکشنری اصلی ساخته شده و در خروجی برگردانده می‌شود. به این معنی که با استفاده از متد copy()

 می‌توانیم دیکشنری جدیدی با همان جفت‌های کلید-مقدار موجود در دیکشنری اصلی، ایجاد کنیم.

خانوم مهندس در حال خیره شدن به مانیتور است. مانیتور صفحات کدنویسی را نشان می‌دهد و انعکاس مانیتور بر روی عینک خانوم مهندس افتاده.

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

سینتکس متد

شکل پایه سینتکس متد copy()

 برای کار با دیکشنری فرضی dict

به صورت نمایش داده شده در پایین است.

پارامترهای دریافتی و مقدارهای برگشتی

این متد، هیچ پارامتری را به عنوان داده ورودی دریافت نمی‌کند. مقدار برگشت داده شده توسط متد copy()

برابر با شیء جدیدی از کلاس دیکشنری است. این اشیا را با متد سازنده dict()

 هم می‌توان تعریف کرد.

روش استفاده از متد copy در پایتون

همان‌طور که اشاره شد، با استفاده از متد copy()

در پایتون، نسخه کپی شده‌ سطحی از روی دیکشنری اصلی ایجاد می‌کنیم. یعنی دیکشنری جدیدی با همان کلید و مقدارهای موجود در دیکشنری اصلی ساخته خواهد شد.

1original_dict = {'a': 1, 'b': 2}
2copied_dict = original_dict.copy()
3print(copied_dict)

با اجرای کد بالا دیکشنری {‘a’: 1, ‘b’: 2}

 در کنسول خروجی به کاربر نمایش داده می‌شود.

متد fromkeys

متد fromkeys()

 یکی از متدهای دیکشنری در پایتون است که برای ساخت دیکشنری جدید استفاده می‌شود. با کمک این متد، کلید‌های دیکشنری جدید از طریق شیء پیمایش‌پذیری مانند لیست، انتخاب شده و مقادیر این کلید‌ها با کمک مجموعه داده‌ ارائه شده به متد تامین می‌شود. اگر چیزی برای مقداردهی value

-های دیکشنری به متد ارائه نشده بود، به صورت پیش‌فرض مقدار «تهی» (None) به عنوان مقدار Value به کلید‌ها تخصیص داده می‌شود.

سینتکس متد

شکل پایه سینتکس متد پایتونی  fromkeys()

 برای کار با دیکشنری با نام فرضی dict

به صورت نمایش داده شده در پایین است.

1dict.fromkeys(sequence, [value])

پارامترهای دریافتی و مقدارهای برگشتی

همین‌طور که در سینتکس بالا مشاهده می‌کنید، این متد، ۲ پارامتر به عنوان پارامتر ورودی دریافت می‌کند که در ادامه معرفی کرده‌ایم. قابل ذکر است که متد fromkeys()

مقدار خاصی را نیز به عنوان داده خروجی برمی‌گرداند.

ورودی: متد fromkeys()

دو پارامتر اصلی دریافت می‌کند. هر دوی این پارامترها را با توضیحات مربوطه در پایین فهرست کرده‌ایم.

  • sequence

     : این پارامتر، نمایانگر همان شیء پیمایش‌پذیری است که برای ساخت دیکشنری جدید استفاده می‌شود. از عناصر موجود در این شیء پیمایش‌پذیر به عنوان کلید‌های دیکشنری جدید استفاده می‌شود. وجود این پارامتر، اجباری است.

  • value

    : این پارامتر، مقادیری را فراهم می‌کند که باید به کلیدهای دیکشنری جدید ساخته شده اختصاص دهیم. اگر پارامتر value

     به متد ارائه نشده باشد، به صورت پیش‌فرض به همه کلیدها مقدار None اختصاص داده می‌شود. وجود این پارامتر، در متد اختیاری است.

خروجی:‌ متد fromkeys()

در نهایت دیکشنری جدیدی با کلید‌های فراهم شده همراه با مجموعه مقدار مشخص شده تولید کرده و در خروجی برمی‌گرداند.

نیمه‌های شب برنامه نویس از فاصله بسیار نزدیک به مانیتور نگاه می‌کند. مانیتور کدنویسی را نشان می‌دهد. متدهای دیکشنری در پایتون

روش استفاده از متد fromkeys در پایتون

در کد پایین، با استفاده از متد fromkeys()

دیکشنری جدیدی را با استفاده از کلید و مقدار مشخص شده ایجاد می‌کنیم.

1new_dict = dict.fromkeys(['a', 'b', 'c'], 0)
2print(new_dict)

با اجرای کد بالا، دیکشنری {‘a’: 0, ‘b’: 0, ‘c’: 0}

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

متد get

متد get()

، یکی از متدهای دیکشنری در پایتون است که برای بدست آوردن مقدار مربوط به کلید مشخص شده در دیکشنری به‌کار برده می‌شود. اگر کلید پیدا نشود به‌جای اینکه خطای استثنای KeyError

 را به کاربر نمایش دهد، مقداری که به عنوان پیش‌فرض برایش مشخص شده برمی‌گرداند.

سینتکس متد

شکل پایه سینتکس متد get()

برای کار با دیکشنری فرضی dict

به صورت نمایش داده شده در پایین است.

پارامترهای دریافتی و مقدارهای برگشتی

ورودی: متد get()

دو پارامتر اصلی دریافت می‌کند. هر دوی این پارامترها را با توضیحات مربوطه در ادامه فهرست کرده‌ایم.

  • key

     : این پارامتر، کلیدی را مشخص می‌کند که در دیکشنری باید جست‌وجو شود.

  • default

     :  این پارامتر، مقداری را مشخص می‌کند که در صورت یافته نشدن کلید key

     باید به کاربر نمایش داده شود. در صورتی که برای این پارامتر، مقداری مشخص نشده باشد به صورت پیش‌فرض مقدار None را نمایش می‌دهد. وجود این پارامتر، اختیاری است.

خروجی: از آنجا که این متد، مقدار مربوط به کلید مشخص شده را برمی‌گرداند، می‌تواند هر نوع داده‌ای را در خروجی برگرداند.

روش استفاده از متد get در پایتون

در این بخش برای نمایش روش کار متد get()

سه مثال مختلف را پیاده‌سازی کرده‌ایم.

مثال اول

در این مثال با استفاده از متد get()

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

1employee = {'name': 'John Doe', 'age': 30} 
2print(employee.get('name')) # Output: John Doe 
3print(employee.get('salary', 0)) # Output: 0

مثال دوم

در زمانی که کلید‌ی را در دیکشنری فراخوانی می‌کنیم که شاید وجود نداشته باشد، با استفاده از متد get()

می‌توان از بروز خطای مربوط به KeyError

جلوگیری کرد.

1student = {'name': 'Alice', 'grade': 'A'} 
2print(student.get('grade')) # Output: A 
3print(student.get('address', 'Unknown')) # Output: Unknown

مثال سوم

متد get()

مقدار پیش‌فرضی را هم به عنوان پارامتر دوم می‌پذیرد. در صورت پیدا نشدن کلید ارائه شده به متد در دیکشنری، همان مقدار پیش‌فرض به کاربر نمایش داده می‌شود.

1colors = {'red': '#FF0000', 'blue': '#0000FF'} 
2print(colors.get('green', 'Key not found')) # Output: Key not found 
3print(colors.get('red', 'Key not found')) # Output: #FF0000

متد has_key

متد درونی has_key()

 در پایتون برای تشخیص وجود داشتن کلید خاصی در دیکشنری به‌کار برده می‌شود. در صورتی که کلید مشخص شده در دیکشنری وجود داشت، توسط تابع مقدار True

و در غیر این صورت مقدار False

به برنامه برگردانده می‌شود.

دیکشنری پایتون، کلکسیونی از کلید‌ها و مقدارها است. بعضی وقت‌ها لازم است که وجود داشتن یا نداشتن کلید خاصی را در دیکشنری بررسی کنیم. برای انجام این وظیفه از متد has_key()

استفاده می‌کنیم.

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

توجه: متد has_key()

فقط در پایتون نسخه ۲ قابل استفاده است. این متد، در پایتون۳ و بالاتر از رده خارج شده است. در این نسخه‌ها از پایتون، برای بررسی وجود داشتن داده‌ خاصی در ساختارهای ذخیره داده از عملگر in

 استفاده می‌کنیم.

سینتکس متد

شکل پایه سینتکس این متد، پایتونی برای کار با دیکشنری با نام فرضی dict

به صورت زیر است.

پارامترهای دریافتی و مقدارهای برگشتی

پارامتر key

که در سینتکس بالا مشاهده می‌کنیم، همان کلیدی است که باید در دیکشنری مورد جست‌وجو قرار بگیرد. این متد، به عنوان مقدار برگشتی داده‌ای از نوع Boolean برمی‌گرداند. در صورتی که کلید مورد نظر در دیکشنری وجود داشته باشد مقدار True

و در غیر این صورت مقدار False

به بیرون از متد برگشت داده می‌شود.

روش استفاده از متد has_key در پایتون

در ادامه برای نمایش روش کار این متد، سه مثال مختلف را پیاده‌سازی کرده‌ایم.

مثال اول

اگر کلیدی که به عنوان آرگومان به متد ارسال شده بود در دیکشنری وجود داشت، متد has_key()

، مقدار ‌برابر با True

و در غیر این صورت مقدار False

را برمی‌گرداند. در کد زیر از متد has_key()

بر روی دیکشنری فرضی dict

استفاده کرده‌ایم. در دیکشنری دو کلید با مقدار Name

 و Age

 وجود دارند. برای نمایش مثال، کلمه Age

را به عنوان آرگومان به تابع has_key()

ارسال کرده‌ایم.

1# creating a dictionary
2dict = {'Name': 'Zara', 'Age': 7}
3# returning the boolean value
4print "Value : %s" %  dict.has_key('Age')

وقتی که برنامه بالا اجرا شود، نتیجه زیر را بر روی کنسول پایتون مشاهده می‌کنیم.

Value : True

مثال دوم

اگر کلیدی که به عنوان آرگومان به متد ارسال شده بود در دیکشنری وجود نداشت، این متد، به عنوان خروجی مقدار False

را برمی‌گرداند.

در دیکشنری فرضی dict

که در مثال پایین ایجاد شده، دو کلید با مقدار Name

و Age

وجود دارند. در این دفعه، برای نمایش مثال، کلمه Sex

 را به عنوان آرگومان به تابع has_key()

ارسال کرده‌ایم، با علم به این موضوع که کلمه مورد نظر در کلید‌های دیکشنری موجود نیست.

1# creating a dictionary
2dict = {'Name': 'Zara', 'Age': 7}
3# printing the result
4print "Value : %s" %  dict.has_key('Sex')

وقتی که برنامه بالا اجرا شود، نتیجه زیر را بر روی کنسول زبان برنامه نویسی پایتون مشاهده می‌کنیم.

Value : False

مثال سوم

متد has_key()

در پایتون۳ منسوخ شده است. بنابراین برای بررسی وجود داشتن کلید خاصی در دیکشنری باید از عملگر منطقی in

استفاده کنیم. این عملگرهم در صورت وجود کلید در دیکشنری مقدار ‌Boolean برابر با True

و در غیر این صورت مقدار False

را برمی‌گرداند.

1dict_1 = {6: "Six", 7: "Seven", 8: "Eight"}
2print("The dictionary is {}".format(dict_1))
3# Returns True if the key is present in the dictionary
4if 7 in dict_1: 
5   print(dict_1[7])
6else:
7   print("{} is not present".format(7))
8# Returns False if the key is not present in the dictionary
9if 12 in dict_1.keys():
10   print(dict_1[12])
11else:
12   print("{} is not present".format(12))

وقتی که برنامه بالا اجرا شود، نتیجه زیر را بر روی کنسول پایتون مشاهده می‌کنیم.

The dictionary is {6: 'Six', 7: 'Seven', 8: 'Eight'}
Seven
12 is not present

متد items

متد items()

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

خانم دانشمند در کارگاه تحقیقاتی در حال کار بر روی ستاره ها است.

سینتکس متد

شکل پایه سینتکس این متد پایتونی برای کار با دیکشنری با نام فرضی dict

به صورت نمایش داده شده در پایین است.

پارامترهای دریافتی و مقدارهای برگشتی

متد items()

هیچ پارامتری را به عنوان داده ورودی دریافت نمی‌کند اما شیء نمایی از تاپل‌های کلید مقدار tuples (key, value)

 درون دیکشنری را در خروجی به کاربر برمی‌گرداند.

روش استفاده از متد items در پایتون

در ادامه برای نمایش روش کار این متد، سه مثال مختلف را پیاده‌سازی کرده‌ایم.

مثال اول

متد items()

در پایتون، شیء نمایی را به خروجی برمی‌گرداند. در این شیء، لیستی از جفت‌های کلید و مقدار محصور در تاپل قرار دارند.

1dict = {'a': 1, 'b': 2, 'c': 3}
2print(list(dict.items()))
3# Output: [('a', 1), ('b', 2), ('c', 3)]

مثال دوم

این متد، کمک می‌کند که بر روی جفت‌های کلید-مقدار درون دیکشنری با استفاده از حلقه‌‌های مخصوص برنامه نویسی پیمایش کنیم.

1dict = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}
2for key, value in dict.items():
3    print(f'The color of {key} is {value}')

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

The color of apple is red
The color of banana is yellow
The color of grape is purple

مثال سوم

می‌توانیم از متد items()

همراه با تکنیک تعریف لیست List Comprehension برای کار با داده‌های درون دیکشنری هم استفاده کنیم. در این صورت به عنوان مثال می‌توان لیست جدیدی از دیکشنری‌های پایتونی قالب‌بندی شده ایجاد کرد.

1dict = {'John': 25, 'Alice': 30, 'Bob': 28}
2formatted_list = [f'{name} is {age} years old' for name, age in dict.items()]
3print(formatted_list)
4# Output: ['John is 25 years old', 'Alice is 30 years old', 'Bob is 28 years old']

متد keys

متد keys()

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

سینتکس متد

شکل پایه سینتکس متد keys()

برای کار با دیکشنری با نام فرضی dict

به صورت نمایش داده شده در پایین است.

پارامترهای دریافتی و مقدارهای برگشتی

متد keys()

هیچ پارامتری را به عنوان داده ورودی دریافت نمی‌کند. اما در خروجی «شیء نمایی» (The View Object) از همه کلید‌های دیکشنری را برمی‌گرداند.

روش استفاده از متد keys در پایتون

دیکشنری‌های پایتون شباهت بسیار زیادی با JSON-ها دارند. اما دارای تفاوت‌های اساسی نیز هستند. با مطالعه مطالب JSON برای پایتون، راهنمایی برای مبتدی‌ها و کار با انواع فرمت ها در پایتون (JSON ،CSV و XML) به زبان ساده در مجله فرادرس، اطلاعات بسیار خوبی درباره فرمت ذخیره داده JSON پیدا می‌کنید. همچنین نسبت به مزایایی که این فرمت برای نقل و انتقال داده‌ها در بستر اینترنت دارد و روش انجام این‌ کار در حد بسیار خوبی آشنا می‌شوید.

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

در ادامه برای نمایش روش کار متد keys()

سه مثال مختلف را پیاده‌سازی کرده‌ایم.

مثال اول

متد keys()

در پایتو شیء نمایی را به خروجی برمی‌گرداند. در این شیء نمایی لیستی از همه کلیدهای موجود در دیکشنری قرار دارد.

1# Using keys() method
2my_dict = {'a': 1, 'b': 2, 'c': 3}
3keys = my_dict.keys()
4print(keys)

خروجی حاصل از اجرای کد بالا به صورت dict_keys([‘a’, ‘b’, ‘c’])

 به کاربر نمایش داده می‌شود.

مثال دوم

شی نمایی ساختاری پویا دارد. یعنی تمام تغییراتی که در دیکشنری ایجاد می‌شود را منعکس می‌کند.

1# Modifying the dictionary and checking keys()
2my_dict = {'a': 1, 'b': 2, 'c': 3}
3keys = my_dict.keys()
4my_dict['d'] = 4
5print(keys)

خروجی حاصل از اجرای کد بالا به شکل dict_keys([‘a’, ‘b’, ‘c’, ‘d’])

 نمایش داده می‌شود.

مثال سوم

متد keys()

به عنوان خروجی، نوع داده مرسوم لیست را برنمی‌گرداند. اما شی‌ء نمایی که توسط این متد، برگردانده شده را به سادگی می‌توان با به‌کار بردن تابع list()

 به لیست معمولی تبدیل کرد.

1# Converting keys view object to list
2my_dict = {'a': 1, 'b': 2, 'c': 3}
3keys = list(my_dict.keys())
4print(keys)

با اجرای کد بالا، لیست [‘a’, ‘b’, ‘c’]

به عنوان خروجی در کنسول پایتون نمایش داده می‌شود.

متد pop

متد pop()

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

در برنامه می‌شود.

سینتکس متد

شکل پایه سینتکس متد پایتونی pop()

برای کار با دیکشنری با نام فرضی dict

به صورت نمایش داده شده در پایین است.

1dictionary.pop(key[, default])

پارامترهای دریافتی و مقدارهای برگشتی

متد pop()

دو پارامتر اصلی دریافت می‌کند. هر دوی این پارامترها را با توضیحات مربوطه در ادامه فهرست کرده‌ایم.

  • key

     : این پارامتر، کلیدی را مشخص می‌کند که در دیکشنری باید جست‌وجو شود. بعد از پیدا کردن این کلید، در ابتدا کلید و مقدارش از دیکشنری حذف می‌شوند و سپس مقدار مربوطه در خروجی برگردانده می‌شود.

  • default

    این پارامتر، مقداری را به صورت پیش‌فرض، مشخص می‌کند. این مقدار پیش‌فرض در صورت یافته نشدن کلید key

    باید به عنوان مقدار جواب به خروجی برگردانده شود. در صورتی که برای این پارامتر، مقداری مشخص نشده باشد باعث ایجاد خطای استثنای KeyError

    می‌شود. وجود این پارامتر، اختیاری است.

خروجی: از آنجا که این متد، مقدار مربوط به کلید مشخص شده را برمی‌گرداند، پس ممکن است، هر نوع داده‌ای را در خروجی برگرداند.

روش استفاده از متد pop در پایتون

در ادامه این بخش، برای نمایش انواع پیشامدهای ممکن در مقابل این متد، ۳ مدل پیاده‌سازی مختلف را ارائه کرده‌ایم.

مثال اول

متد pop()

با توجه به کلید مشخص شده، عنصر مرتبط در دیکشنری را پیدا کرده سپس حذف می‌کند و در خروجی برمی‌گرداند.

1my_dict = {'a': 1, 'b': 2, 'c': 3} 
2popped_value = my_dict.pop('b') 
3print('Popped value:', popped_value) 
4print('Updated dictionary:', my_dict)

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

Popped value: 2
Updated dictionary: {'a': 1, 'c': 3}

مثال دوم

اگر کلید مورد نظر در دیکشنری وجود نداشت، این متد، با خطای استثنای KeyError

روبه‌رو می‌شود.

1my_dict = {'a': 1, 'b': 2, 'c': 3} 
2popped_value = my_dict.pop('z') 
3print('Popped value:', popped_value) 
4print('Updated dictionary:', my_dict)

بر اثر اجرای کد بالا پیغام خطا در خروجی کنسول پایتون به کاربر نمایش داده می‌شود.

Traceback (most recent call last):
  File "main.py", line 2, in 
    popped_value = my_dict.pop('z') 
KeyError: 'z'

مثال سوم

می‌توانیم مقدار پیش‌فرضی تعیین کنیم تا در صورت پیدا نشدن کلید مورد نظر در دیکشنری، به خروجی برگردد. برای انجام این کار باید از آرگومان دوم متد pop()

استفاده کنیم.

1my_dict = {'a': 1, 'b': 2, 'c': 3} 
2popped_value = my_dict.pop('z', 'Key not found') 
3print('Popped value:', popped_value) 
4print('Original dictionary:', my_dict)

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

Popped value: Key not found
Original dictionary: {'a': 1, 'b': 2, 'c': 3}

متد popitem

متد popitem()

 یکی از متدهای دیکشنری در پایتون است که برای حذف و برگرداندن جفت کلید و مقدار ثابت – آخرین عنصر اضافه شده – در دیکشنری استفاده می‌شود. این متد، بخصوص زمانی مفید است که می‌خواهیم عنصرها را با نظم دلخواهی از دیکشنری حذف کرده و مقدار مربوطه را به خروجی ارسال کنیم.

سینتکس متد

شکل پایه سینتکس متد popitem()

برای کار با دیکشنری با نام فرضی dict

به صورت نمایش داده شده در پایین است.

پارامترهای دریافتی و مقدارهای برگشتی

متد popitem()

هیچ پارامتری را به عنوان داده ورودی دریافت نمی‌کند. اما در خروجی تاپلی را به صورت جفت کلید-مقدار برمی‌گرداند. از پایتون ۳٫۷ به بعد این متد، آخرین عنصر اضافه شده به دیکشنری را به همراه مقدار متناظر آن حذف می‌کند.

روش استفاده از متد keys در پایتون

در ادامه برای نمایش روش کار این متد، سه مثال مختلف را پیاده‌سازی کرده‌ایم.

مثال اول

متد popitem()

به صورت ثابت همیشه آخرین جفت کلید-مقدار درون دیکشنری را حذف کرده و در خروجی برمی‌گرداند.

1d = {'a': 1, 'b': 2, 'c': 3}
2item = d.popitem()
3print(item)

بر اثر اجرای کد بالا تاپل (‘c’, 3)

 به عنوان خروجی به برنامه برمی‌گردد.

دختری در کنار سگ خود به لپتاپ اپل خیره شده اند. - متدهای دیکشنری در پایتون

مثال دوم

وقتی که متد popitem()

بر روی دیکشنری خالی و بدون عنصر اعمال شود، باعث برخواستن خطای KeyError

می‌شود.

1empty_dict = {}
2try:
3    item = empty_dict.popitem()
4except KeyError as e:
5    print('Dictionary is empty:', e)

بر اثر اجرای کد بالا خروجی زیر در کنسول پایتون به کاربر نمایش داده می‌شود. در کد بالا با استفاده از بلوک Try/Except در پایتون خطای مورد نظر را مدیریت کرده‌ایم.

Dictionary is empty: 'popitem(): dictionary is empty'

مثال سوم

با کمک این متد، می‌توانیم عملکر «آخرین ورودی، اولین خروجی» (LIFO) را در دیکشنری پیاده‌سازی کنیم.

1d = {'apple': 3, 'banana': 2, 'cherry': 1}
2while d:
3    key, value = d.popitem()
4    print(f'Eating {key} ({value} left)')

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

Eating cherry (1 left)
Eating banana (2 left)
Eating apple (3 left)

متد setdefault

با کمک متد setdefault()

 در پایتون می‌توانیم مقدار خاصی را با توجه به کلید مشخص شده از دیکشنری فراخوانی کنیم. اگر کلید مورد نظر در دیکشنری موجود بود، مقدار متناظر با آن برگشت داده می‌شود. اما اگر کلید مشخص شده در دیکشنری وجود نداشت، این متد، کلید را به همراه مقدار مشخص شده به عنوان پیش‌فرض در پارامتر دوم متد به دیکشنری اضافه می‌کند. سپس مقدار متناظر با کلید را به برنامه برمی‌گرداند. با کمک این متد، می‌توانیم از روبه‌رو شدن با خطای KeyError

در زمان فراخوانی مقدار کلیدی که در دیکشنری نیست جلوگیری کنیم.

سینتکس متد

شکل پایه سینتکس متد setdefault()

برای کار با دیکشنری با نام فرضی dict

به صورت نمایش داده شده در پایین است.

1dict.setdefault(key, default=None)

پارامترهای دریافتی و مقدارهای برگشتی

متد setdefault()

دو پارامتر اصلی دریافت می‌کند. هر دوی این پارامترها را با توضیحات مربوطه در ادامه فهرست کرده‌ایم.

  • key

     : این پارامتر، کلیدی را مشخص می‌کند که در دیکشنری باید جست‌وجو شود. بعد از پیدا کردن این کلید، مقدار متناظر با آن را به برنام برمی‌گردانیم.

  • default

    این پارامتر، مقداری را مشخص می‌کند که در صورت پیدا نشدن کلید key

    باید به دیکشنری اضافه شود.

خروجی: از آنجا که این متد، مقدار متناظر با کلید مشخص شده را برمی‌گرداند پس هر نوع داده‌ای موجود در دیکشنری را نیز می‌تواند در خروجی برگرداند.

روش استفاده از متد setdefault در پایتون

متوجه شدیم که با استفاده از متد setdefault()

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

1my_dict = {'a': 1, 'b': 2}
2default_val = my_dict.setdefault('c', 3)
3print(default_val) # Output: 3
4print(my_dict) # Output: {'a': 1, 'b': 2, 'c': 3}

بر اثر اجرای کد بالا، داده‌های زیر در کنسول پایتون به کاربر نمایش داده می‌شوند.

3
{'a': 1, 'b': 2, 'c': 3}

متد update

متد update()

 یکی دیگر از متدهای دیکشنری در پایتون است. این متد، برای به‌روزرسانی داده‌های درون دیکشنری با استفاده از داده‌های دیکشنری دیگر یا نوع داده پیمایش‌پذیری از جفت‌های کلید-مقدار به‌کار برده می‌شود. با کمک این متد، بر اساس پارامترهای ورودی که فراهم شده می‌توان جفت‌های کلید-مقدار را به دیکشنری اضافه کرد یا در دیکشنری تغییر داد.

سینتکس متد

شکل پایه سینتکس این متد، پایتونی برای کار با دیکشنری با نام فرضی dict

به صورت زیر است.

پارامترهای دریافتی و مقدارهای برگشتی

ورودی: متد update()

فقط یک پارامتر دریافت می‌کند. این پارامتر، از نوع ساختارهای پیمایش‌پذیر است.

  • iterable

     : پارامتر iterable

     یا دیکشنری است یا ساختار داده پیمایش‌پذیری که از جفت‌های کلید-مقدار تشکیل شده. با کمک داده‌های این پارامتر، دیکشنری موجود را به‌روزرسانی می‌کنیم.

یک مرد در یک شرکت پر از کامپیوتر پشت میز نشسته و با لپتاپ کار می‌کند.

خروجی: متد update()

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

روش استفاده از متد update در پایتون

در ادامه این قسمت از مطلب، برای نمایش روش کار متد update()

، سه مثال مختلف را پیاده‌سازی کرده‌ایم.

مثال اول

با توجه به مطلب بالا مثال اول را پیاده‌سازی می‌کنیم. متد update()

دیکشنری مورد نظر را با توجه به داده‌های که به عنوان پارامتر دریافت کرده به‌روزرسانی می‌کند. این متد، داده‌ها را به شکل دیکشنری یا ساختار داده پیمایش‌پذیر شامل «جفت‌های کلید-مقدار» (Key-Value Pairs) می‌پذیرد. اگر هر کدام از کلید‌هایی که به متد ارسال شده از قبل در دیکشنری موجود باشند، فقط مقدار متناظر با آن کلید با مقدار جدید به‌روزرسانی می‌شود.

1dict1 = {'a': 1, 'b': 2}
2dict2 = {'b': 3, 'c': 4}
3dict1.update(dict2)
4print(dict1)

بر اثر اجرای کد بالا دیکشنری {‘a’: 1, ‘b’: 3, ‘c’: 4}

 در خروجی نمایش داده می‌شود.

مثال دوم

وقتی که با استفاده از شی‌ء پیمایش‌پذیری مانند لیستی از تاپل‌ها در حال به‌روزرسانی دیکشنری هستیم، برای اینکه بتوانیم داده‌ای را در دیکشنری به‌روزرسانی یا به آن اضافه کنیم، هر تاپل باید شامل جفت داده‌ای به شکل کلید و مقدار باشد.

1dict1 = {'a': 1, 'b': 2}
2updates = [('b', 3), ('c', 4)]
3dict1.update(updates)
4print(dict1)

بر اثر اجرای کد بالا دیکشنری {‘a’: 1, ‘b’: 3, ‘c’: 4}

 در خروجی ظاهر می‌شود.

مثال سوم

اگر کلیدی که به متد update()

ارسال کرده‌ایم از قبل در دیکشنری وجود نداشت، این متد، کلید مورد اشاره را همراه با مقدار متناظر آن به دیکشنری اضافه می‌کند.

1dict1 = {'a': 1, 'b': 2}
2new_data = {'c': 3, 'd': 4}
3dict1.update(new_data)
4print(dict1)

بر اثر اجرای کد بالا دیکشنری {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}

 در خروجی ظاهر می‌شود.

متد values

متد values()

 یکی از متدهای درونی دیکشنری در پایتون است که شیء نمایی از مقادری درون دیکشنری برمی‌گرداند. این شیء نمایی لیستی از همه مقادیر درون دیکشنری نمایش می‌دهد. با کمک متد values()

می‌توانیم به مقادیر ذخیره شده در دیکشنری دسترسی داشته باشیم و با آن‌ها کار کنیم.

سینتکس متد

شکل پایه سینتکس متد پایتونی values()

برای کار با دیکشنری با نام فرضی dict

به صورت نمایش داده شده در پایین است.

پارامترهای دریافتی و مقدارهای برگشتی

متد values()

هیچ پارامتری را به عنوان داده ورودی دریافت نمی‌کند. اما در خروجی شیء نمایی شامل همه مقادیر درون دیکشنری را برمی‌گرداند.

روش استفاده از متد values در پایتون

در ادامه این قسمت از مطلب، برای نمایش روش کار متد values()

، سه مثال مختلف را پیاده‌سازی کرده‌ایم.

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

مثال اول

متد values()

، «شیء نمایی» برمی‌گرداند که شامل لیستی از همه مقادیر موجود در دیکشنری می‌شود.

1data = {'a': 1, 'b': 2, 'c': 3}
2print(list(data.values()))

بر اثر اجرای کد بالا لیست زیر به صورت خروجی در کنسول پایتون نمایش داده می‌شود.

[1, 2, 3]

مثال دوم

شی نمایی که توسط متد values()

تولید شده خواصیت پویایی دارد. به این صورت که هر تغییری که در دیکشنری ایجاد شود در لیست مقادیر منعکس می‌شود.

1data = {'a': 1, 'b': 2, 'c': 3}
2vals = data.values()
3data['a'] = 100
4print(list(vals))

بر اثر اجرای کد بالا لیست زیر به صورت خروجی در کنسول پایتون نمایش داده می‌شود.

[100, 2, 3]

مثال سوم

مقادیر درون شی نمایی، نسخه کپی شده‌ای از مقادیر ذخیره شده در دیکشنری نیستند. بلکه فقط نمایشی از آن‌ها هستند.

1data = {'a': 1, 'b': 2, 'c': 3}
2vals = data.values()
3data['d'] = 4
4print(list(vals))

بر اثر اجرای کد بالا لیست زیر به صورت خروجی در کنسول پایتون نمایش داده می‌شود.

[1, 2, 3, 4]

تقویت مهارت‌ های پایتونی

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

 مجموعه آموزش پروژه‌محور برنامه نویسی
برای مشاهده مجموعه فیلم های آموزش پروژه‌محور برنامه نویسی، روی تصویر کلیک کنید.

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

جمع بندی

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

متدهای دیکشنری در پایتون، عملیات مختلف ممکن بر روی دیکشنری‌ها را ممکن می‌کنند. دیکشنری‌ها جزو مفید‌ترین و پرکاربردترین ساختارهای ذخیره داده در پایتون و برنامه‌نویسی هستند. شباهت بسیار زیادی به JSON دارند و تقریبا در برنامه‌های بزرگ به طور دائم استفاده می‌شوند. با تسلط به کار بر روی متدهای دیکشنری می‌توانید وظایف خاص و پیچیده‌ای را در حوزه‌های مختلفی مانند متن کاوی انجام دهید.

source

توسط expressjs.ir