در «زبان برنامه‌نویسی پایتون» (Python Programming Language)، شش «نوع داده» (Data Type) اصلی وجود دارد. این انواع داده، شامل «عدد» (Number)، «لیست» (List)، «تاپل» (Tuple)، «رشته» (String)، «مجموعه» (Set) و «دیکشنری» (Dictionary) می‌شوند. در این مطلب، نوع داده دیکشنری در پایتون مورد بررسی قرار گرفته است و به مباحث گوناگون پیرامون آن شامل روش ساخت دیکشنری در پایتون ، دسترسی به عناصر دیکشنری در پایتون ، اضافه و حذف کردن عناصر از دیکشنری در پایتون و متدهای توکار متعددی که برای کار با دیکشنری در پایتون وجود دارد پرداخته می‌شود.

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

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

ساخت یک دیکشنری کاری ساده محسوب می‌شود زیرا تنها کافی است که مقادیر داخل دو آکولاد قرار بگیرند و توسط کاما از هم جدا شوند. یک عنصر دارای یک کلید است و مقدار متناظر آن به صورت جفت «کلید: مقدار» بیان می‌شود. در حالی که مقادیر می‌توانند از هر نوع داده‌ای باشند و قابل تکرار نیز هستند، کلیدها باید از یک نوع غیر قابل تغییر (رشته، عدد یا تاپل با عنصر غیر قابل تغییر) و یکتا باشند.

همانطور که در کد بالا قابل مشاهده است، می‌توان یک دیکشنری را با استفاده از تابع توکار ()dict ساخت.

روش دسترسی به عناصر دیکشنری در پایتون

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

هنگامی که برنامه اجرا شود، خروجی به صورت زیر خواهد بود.

Jack
26
None
Traceback (most recent call last):
File "<string>", line 15, in <module>
print(my_dict['address'])
KeyError: 'address'

روش تغییر یا اضافه کردن عنصر در دیکشنری در پایتون

دیکشنری‌ها قابل تغییر هستند. می‌توان عناصر جدید را به دیکشنری افزود و یا مقدار عناصر موجود را با استفاده از عملگر تخصیص (=) تغییر داد. اگر کلید موجود باشد، مقدار به روز رسانی می‌شود. در غیر این صورت، یک جفت «کلید: مقدار» جدید ساخته می‌شود.

در صورت اجرای کد بالا، خروجی به صورت زیر خواهد بود:

روش حذف عناصر دیکشنری در پایتون

می‌توان با استفاده از متد ()pop یک عنصر خاص را از دیکشنری حذف کرد. این متد، یک عنصر را بر اساس کلید آن حذف می‌کند و مقدار آن را باز می‌گرداند. متد ()popitem می‌تواند برای حذف و بازگرداندن یک عنصر دلخواه (کلید، مقدار) از دیکشنری مورد استفاده قرار بگیرد. همه عناصر دیکشنری را می‌توان با استفاده از متد ()clear به صورت یکباره حذف کرد. همچنین، می‌توان از کلیدواژه del برای حذف عناصر یا کل دیکشنری استفاده کرد.

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

16
{1: 1, 2: 4, 3: 9, 5: 25}
(1, 1)
{2: 4, 3: 9, 5: 25}
{2: 4, 3: 9}
{}

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

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

  • ()clear: همه عناصر دیکشنری را حذف می‌کند.
  • ()copy: یک Shallow Copy از دیکشنری را باز می‌گرداند.
  • ([fromkeys(seq[, v: یک دیکشنری جدید با کلیدهایی از seq و مقداری مساوی با v باز می‌گرداند (به طور پیش‌فرض None است).
  • ([get(key[,d: مقدار key را باز می‌گرداند. اگر key موجود نباشد، d را باز می‌گرداند (به طور پیش‌فرض None است).
  • ()items: یک دید جدید از عناصر دیکشنری ارائه می‌کند (کلید، مقدار).
  • ()keys: یک دید جدید از کلیدهای دیکشنری ارائه می‌کند.
  • ([pop(key[,d: عنصر با key داده شده را حذف می‌کند و مقدار آن را باز می‌گرداند و یا اگر کلید وجود نداشت، مقدار یا d را باز می‌گرداند. در صورتی که d داده نشده باشد و key نیز پیدا نشود، خطای KeyError نمایش داده می‌شود.
  • ()popitem: یک عنصر دلخواه را حذف می‌کند و مقدار آن را (کلید، مقدار) باز می‌گرداند. در صورت خالی بودن دیکشنری، خطای KeyError را نمایش می دهد.
  • ([setdefault(key[,d: اگر key در دیکشنری قرار دارد، مقدار آن را باز می‌گرداند. در غیر این صورت، key را با مقدار d درج می‌کند و d را بازمی‌گرداند (به طور پیش‌فرض None است).
  • ([update([other: دیکشنری را با جفت‌های کلید/مقدار از other به روز رسانی می‌کند و کلیدهای موجود را بازنویسی می‌کند.
  • ()values: یک دید جدید از مقدار دیکشنری را بازمی‌گرداند.

در ادامه، مثال‌هایی از این متدها ارائه شده است.

Dictionary Comprehension در پایتون

Dictionary Comprehension یک راه خوب و کوتاه برای ساخت دیکشنری از یک نوع داده قابل تکرار در پایتون است. Dictionary Comprehension شامل یک جفت «کلید: مقدار» است که با یک statement درون آکولاد دنبال می‌شود. در ادامه، مثالی برای ساخت دیکشنری از جفت‌هایی عدد و مربع آن ارائه شده است.

کد بالا، عملکردی مشابه کد زیر دارد:

یک Dictionary Comprehension می‌تواند عبارات for یا if بیشتری را به صورت دلخواه در بر بگیرد. یک عبارت if دلخواه، می‌تواند عناصر را برای ساخت یک دیکشنری جدید فیلتر کند. در ادامه، مثال‌هایی برای ساخت دیکشنری تنها با عناصر فرد زده شده است.

دیگر عملیات دیکشنری در پایتون

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

تست عضویت دیکشنری

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

حلقه زدن در دیکشنری

با استفاده از حلقه for می‌توان در کلیدهای دیکشنری حلقه زد. مثال زیر در همین رابطه قابل توجه است.

توابع توکار با دیکشنری

توابع توکار مانند ()any() ،len() ،cmp() ،sorted و ()all برای انجام وظایف گوناگون به طور متداول با دیکشنری‌ها مورد استفاده قرار می‌گیرند. در ادامه، کارکرد هر یک از متدهای مربوط به دیکشنری در پایتون بیان شده است.

  • ()all: اگر همه کلیدهای دیکشنری صحیح هستند (یا اگر دیکشنری خالی است)، مقدار True را باز می‌گرداند.
  • ()any: اگر هر کلیدی از دیکشنری صحیح است، مقدار True را بازمی‌گرداند. اگر دیکشنری خالی است، False را بازمی‌گرداند.
  • ()len: طول دیکشنری (تعداد عناصر آن) را باز می‌گرداند.
  • ()cmp: عناصر دو دیکشنری را مقایسه می‌کند.
  • ()sorted: یک لیست مرتب شده جدید از کلیدها را در دیکشنری باز می‌گرداند.

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

اگر این مطلب برای شما مفید بوده است، آموزش‌ها و مطالب زیر نیز به شما پیشنهاد می‌شوند:

الهام حصارکی (+)

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

بر اساس رای 1 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

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