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

نوشته از زهرا سپنج پور
1402/09/11
دیکشنری در پایتون + تکنیک و ترفندهای متنوع

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

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

1 – ایجاد دیکشنری خالی

دیکشنری در پایتون: ایجاد دیکشنری خالی

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

روش اول:

Capitals = {}

روش دوم استفاده از تابع ()dict

Capitals = dict()

به همین راحتی یک دیکشنری به نام پایتخت کشورها ساخته شد!

2 – ایجاد دیکشنری با مقدار اولیه

Dictionary in Python:Create a dictionary with initial value

در ادامه حالت قبلی حالا اگر بخوایم در همون زمان ایجاد دیکشنری، اون رو مقدار دهی کنیم چه کار باید کرد؟!

روش اول : به عنوان مثال، قصد داریم یک دیکشنری به اسم “Capitals” ایجاد کنیم که قراره در اون پایتخت کشورها تعریف بشه. در واقع هدف اینه که اطلاعات مربوط به پایتخت کشورهارو با استفاده از کلیدهای مختلف مثل “آلمان”، “فرانسه” و “اسپانیا” در اون ذخیره کنیم.

پس خواهیم داشت :

capitals = {
    "Germany": "Berlin",
    "France": "Paris",
    "Spain": "Madrid",
}
country = "Germany"
print(f"The capital of {country} is {capitals[country]}.")

خروجی :

The capital of Germany is Berlin.

در مثال کشور و پایتخت، “آلمان”، “فرانسه” و “اسپانیا” کلیدهای دیکشنری و مقادیر متناظر با اونها (پایتخت) به ترتیب “برلین”، “پاریس” و “مادرید” بودن و به این ترتیب دیکشنری ما با اسم “Capitals” با این مقادیر اولیه ایجاد شد که بعدا هم میتونیم داده های اون رو تغییر یا کم و زیاد کنیم.

اموزش پایتون

روش دوم برای مقداردهی به دیکشنری در همون لحظه تعریف به خاطر بالا بردن حجم کد توصیه نمیشه اما به هرحال بد نیست بدونید :

Capitals[“Germany” = "Berlin"]
Capitals[“France” = "Paris"]
Capitals[“Spain” = "Madrid"]

روش سوم تقریبا مشابه روش اول هست اما به صورت کدنویسی افقی:

Capitals = {"Germany": "Berlin", "France": "Paris"}

3 – اضافه کردن کلید-مقدار جدید به دیکشنری موجود

دیکشنری در پایتون:اضافه کردن مقدار جدید به دیکشنری

معمولا احتمال اینکه اعضای یک دیکشنری به مرور زمان کم و زیاد بشن بالاست. برای همین هر زمان نیاز به تغییرات بود میتونید به شکل زیر عمل کنید. در ادامه مثالهای قبلی، حالا قصد داریم کشور ایتالیا و پایتخت اون یعنی شهر رم رو به دیکشنری Capitals اضافه کنیم :

روش ۱: استفاده از عملگر براکت []

capitals["Italy"] = "Rome"

روش ۲: استفاده از تابع ()update

capitals.update({"Italy": "Rome"})

تا اینجا دو روش برای ساخت دیکشنری خالی و سه روش برای ساخت دیکشنری با مقادیر اولیه رو بررسی کردیم. مهمه که بدونید کلیدها حتما باید یکتا باشن و نکته مثبت اینه که هر نوع داده ای رو میتونن بپذیرن.

4 – دسترسی و تغییر در عناصر دیکشنری در پایتون

Dictionary in Python:Accessing and changing dictionary elements in Python

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

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

مثال:

capital_of_france = capitals["France"]
print(capital_of_france)

خروجی :

Paris
  • تغییر مقدار

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

capitals["France"] = "Abadan"
  • حذف کلید-مقدار از دیکشنری

از کلیدواژه del برای حذف مستقیم کلید و مقدار اون استفاده میشه. به این صورت :

del capitals["France"]

اموزش پایتون

روش دوم حذف استفاده از ()pop هست که مقدار متناظر با یک کلید رو حذف و برخلاف del،  اون رو برمیگردونه. به این شکل :

removed_value = capitals.pop("France")
print("Removed": removed_value)

خروجی :

Removed : Paris

5 – توابع دیکشنری در پایتون

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

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

  • ()keys

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

  • ()values

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

  • ()items

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

  • ()get

این تابع که به شکل ([get(key[default استفاده میشه، کارش اینه که مقدار متناظر با یک کلید رو به همراه مقدار پیش‌فرض در صورتی که کلید مورد نظر موجود نباشه، برگردونه. به طور مثال :

capital_of_france = capitals.get("France")
print(capital_of_france)

خروجی :

Paris

مثال2:

capital_of_italy = capitals.get("Italy", "Unknown")
print(capital_of_italy)

خروجی :

Unknown
  • ()update

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

اموزش پایتون

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

6 – دیکشنری‌ های تودرتو در پایتون

Dictionary in Python:Nested dictionaries in Python

در پایتون، دیکشنری ‌های تودرتو (Nested Dictionaries) به شما اجازه میدن که یک دیکشنری دیگه رو یکجا به عنوان مقدار یک کلید خاص در دیکشنری اصلی قرار بدید. این قابلیت برای ایجاد یک ساختار سلسله مراتبی از دیکشنری‌ها که هرکدوم دارای کلیدها و مقادیر مخصوص به خودشون هستن، کاملا کاربردیه…

در واقع با ساختار تودرتو، میتونید به صورت مرتبط و سازماندهی شده اطلاعات رو ذخیره کنید. مثال ببینیم :

countries = {
    "Iran": {
        "capital": "Tehran",
        "population": 85000000,
        "language": "Persian"
    },
    "France": {
        "capital": "Paris",
        "population": 67000000,
        "language": "French"
    },
    "Japan": {
        "capital": "Tokyo",
        "population": 126000000,
        "language": "Japanese"
    }
}
print(countries["Iran])"

خروجی :

{'capital': 'Tehran', 'population': 85000000, 'language': 'Persian'}

7 – حلقه ها در دیکشنری پایتون

دیکشنری در پایتون: حلقه ها در دیکشنری پایتون

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

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

مثال:

countries = {
    "Iran": "Tehran",
    "France": "Paris",
    "Japan": "Tokyo"
}
for country in countries:
    print(country)    
for capital in countries.values():
    print(capital)

خروجی :

Iran
France
Japan
Tehran
Paris
Tokyo

در اینجا می بینید که در 3 ردیف اول کشورها یا همون کلیدها چاپ شدن و در سه ردیف دوم مقدار همون کلیدها.

8 – ادغام و به ‌روزرسانی دیکشنری در پایتون

Dictionary in Python: Merge and update dictionary in Python

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

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

مثال:

countries1 = {
    "Iran": "Tehran",
    "France": "Paris"
}
countries2 = {
    "Japan": "Tokyo",
    "Germany": "Berlin"
}
countries1.update(countries2)
print(countries1(

خروجی :

{'Iran': 'Tehran', 'France': 'Paris', 'Japan': 'Tokyo', 'Germany': 'Berlin'}

9 – کنترل تکراری نبودن کلیدها

دیکشنری در پایتون: کنترل تکراری نبودن کلیدها

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

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

10 – استفاده از دیکشنری برای تعیین وجود یک کلید

Dictionary in Python: Using a dictionary to determine the existence of a key

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

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

یه مثال ببینیم :

countries = {
    "Iran": "Tehran",
    "France": "Paris",
    "Japan": "Tokyo"
}
if "France" in countries:
    print("The key 'France' exists in the dictionary.")
else:
    print("The key 'France' does not exist in the dictionary.")

خروجی :

The key 'France' exists in the dictionary.

عکس این موضوع یعنی برای بررسی عدم وجود یک کلید، از not in استفاده میشه. یعنی در صورتی که کلید موردنظر در دیکشنری وجود نداشته باشه، شرط به صورت True تبدیل خواهد شد.

اموزش پایتون

مثال :

countries = {
    "Iran": "Tehran",
    "France": "Paris",
    "Japan": "Tokyo"
if "Germany" not in countries:
    print("The key 'Germany' does not exist in the dictionary.")
else:
    print("The key 'Germany' exists in the dictionary.")

خروجی :

The key 'Germany' does not exist in the dictionary.

11 – تبدیل لیست به دیکشنری

دیکشنری در پایتون: تبدیل لیست به دیکشنری

تبدیل لیست به دیکشنری یکی دیگه از نکات دیکشنری در پایتون هست که با استفاده از ()zip و تابع ()dict یک لیست از تاپل ‌ها به یک دیکشنری قابل تبدیل خواهد شد. این ویژگی کمک میکنه تا به راحتی بتونید اطلاعات مختلف رو به صورت دیکشنری ذخیره کنید.

مثال :

pairs = [("A", 1), ("B", 2), ("C", 3)]
converted_dict = dict(pairs)
print(converted_dict(

خروجی :

{'A': 1, 'B': 2, 'C': 3}

چگونه در پایتون حرفه‌ای‌تر شویم؟

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

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

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

از اینکه تا انتهای این مقاله با دقت و حوصله همراه ما بودید متشکریم.

اموزش پایتون

نظرات

ثبت نظر جدید

این مطلب هنوز هیچ نظری نداره، تو اولیش رو بنویس :)

آموزش پایتون