از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
راهنمای دیکشنری ها در پایتون
سرفصلهای مطلب
معرفی
پایتون با انواع ساختارهای داده داخلی عرضه می شود که قادر به ذخیره انواع مختلف داده ها هستند. آ فرهنگ لغت پایتون یکی از این ساختارهای داده ای است که می تواند داده ها را در قالب ذخیره کند جفت های کلید-مقدار – از نظر مفهومی شبیه نقشه با استفاده از کلیدها می توان به مقادیر موجود در فرهنگ لغت پایتون دسترسی پیدا کرد.
در این راهنما، دیکشنری پایتون را به تفصیل مورد بحث قرار خواهیم داد. در ابتدا، عملیات پایه فرهنگ لغت (ایجاد یک فرهنگ لغت، به روز رسانی آن، حذف و افزودن عناصر، و غیره) را پوشش خواهیم داد و سپس به چند روش جالب دیگر نگاهی خواهیم انداخت.
روش ایجاد دیکشنری در پایتون
برای ایجاد فرهنگ لغت پایتون، دنباله ای از آیتم ها (مدخل ها) را در داخل پرانتزهای فرفری قرار می دهیم {}
و با استفاده از کاما آنها را از هم جدا کنید (,
). هر ورودی شامل یک کلید و یک مقدار است که به نام a نیز شناخته می شود ارزش کلیدی جفت
توجه داشته باشید: این ارزش های می تواند متعلق باشد هر نوع داده و آنها می تواند تکرار شود، اما کلیدها باید باقی بماند منحصر بفرد. علاوه بر این، نمیتوانید چندین مقدار را به یک کلید اختصاص دهید، هرچند، میتوانید فهرستی از مقادیر را (به عنوان یک مقدار واحد) اختصاص دهید.
حالا که فهمیدیم دیکشنری ها چیست، بیایید روش استفاده از آنها را در پایتون ببینیم. اول از همه، ما باید بدانیم که چگونه یک دیکشنری خالی بسازید:
example_dict = {}
عالی! اکنون یک دایرکتوری خالی داریم. اما اگر بخواهیم یک فرهنگ لغت را هم ایجاد کنیم و هم با برخی داده های اولیه پر کنیم، چه؟ این نیز یک کار بسیار آسان در پایتون است – فرض کنید کلیدهای عدد صحیح و مقادیر رشته داریم:
example_dict = {1: 'mango', 2: 'pawpaw'}
همانطور که قبلاً گفتیم، لازم نیست همه کلیدها از یک نوع باشند:
example_dict = {'fruit': 'mango', 1: (4, 6, 8)}
از طرف دیگر، میتوانیم با فراخوانی صریح Python یک دیکشنری ایجاد کنیم dict()
سازنده:
example_dict = dict({1:'mango', 2:'pawpaw'})
یک فرهنگ لغت همچنین می تواند با ارسال لیستی از تاپل ها به آن ایجاد شود dict()
سازنده:
example_dict = dict(((1,'mango'), (2,'pawpaw')))
دیکشنری ها نیز می توانند باشند تو در تو، به این معنی که ما می توانیم یک فرهنگ لغت را در یک دیکشنری دیگر ایجاد کنیم:
example_dict = {1: {'student1' : 'Nicholas', 'student2' : 'John', 'student3' : 'Mercy'},
2: {'course1' : 'Computer Science', 'course2' : 'Mathematics', 'course3' : 'Accounting'}}
به print محتویات فرهنگ لغت، می توانیم از Python استفاده کنیم print()
متد و نام دیکشنری را به عنوان آرگومان به متد ارسال کنید:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
print(example_dict)
این منجر به:
{'Company': 'Toyota', 'model': 'Premio', 'year': 2012}
توجه داشته باشید: برای ایجاد فرهنگ لغت مختصر و خواندنی، در نظر بگیرید درک فرهنگ لغت، به ویژه هنگامی که از منبع داده دیگری مشتق می شود:
squares = {x: x*x for x in range(5)}
روش دسترسی به عناصر دیکشنری پایتون
برای دسترسی به آیتم های فرهنگ لغت – ما از آن عبور می کنیم کلید، با استفاده از علامت براکت مربع:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = example_dict("model")
print(x)
این ما را شبکه می کند ارزش مرتبط با “مدل” کلید:
Premio
برای سهولت دسترسی متمرکز میتوانید موارد «پیکربندی» یا ثابتهای رایج را در فرهنگ لغت ذخیره کنید:
example_dict = {'Name': 'Mercy', 'Age': 23, 'Course': 'Accounting'}
print("Student Name:", example_dict('Name'))
print("Course:", example_dict('Course'))
print("Age:", example_dict('Age'))
این به ما می دهد که:
Student Name: Mercy
Course: Accounting
Age: 23
شی دیکشنری نیز ارائه می دهد get()
روش، که می تواند برای دسترسی به عناصر فرهنگ لغت نیز استفاده شود. متد را با نام دیکشنری با استفاده از عملگر نقطه اضافه می کنیم و سپس نام کلید را به عنوان آرگومان به متد ارسال می کنیم:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = example_dict.get("model")
print(x)
اکنون می دانیم که چگونه به عناصر فرهنگ لغت دسترسی پیدا کنیم! در بخش بعدی، در مورد چگونگی افزودن عناصر جدید به فرهنگ لغت موجود بحث خواهیم کرد.
توجه داشته باشید: به جای دسترسی مستقیم به یک کلید، که می تواند منجر به a KeyError
، استفاده کنید get()
روشی برای ارائه یک مقدار پیش فرض
value = my_dict.get("key", default_value)
روش اضافه کردن عناصر به دیکشنری پایتون
راه های زیادی برای افزودن عناصر جدید به فرهنگ لغت وجود دارد. یک راه رایج اضافه کردن یک است کلید جدید و یک مقدار به آن اختصاص دهید:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
example_dict("Capacity") = "1800CC"
print(example_dict)
وقتی کلیدی وجود نداشته باشد، و ما یک مقدار به آن اختصاص دهیم – به فرهنگ لغت اضافه می شود:
{'Capacity': '1800CC', 'year': 2012, 'Company': 'Toyota', 'model': 'Premio'}
عنصر جدید دارد Capacity
به عنوان کلید و 1800CC
به عنوان مقدار متناظر آن به عنوان اولین عنصر فرهنگ لغت اضافه شده است. در اینجا یک مثال دیگر وجود دارد. ابتدا بیایید ابتدا یک فرهنگ لغت خالی بسازیم:
example_dict = {}
print("An Empty Dictionary: ")
print(example_dict)
بیایید بررسی کنیم که خالی است:
An Empty Dictionary:
فرهنگ لغت چیزی را بر نمی گرداند زیرا هنوز چیزی ذخیره نشده است. اجازه دهید عناصری را یکی یکی به آن اضافه کنیم:
example_dict(0) = 'Apples'
example_dict(2) = 'Mangoes'
example_dict(3) = 20
print("3 elements have been added: ")
print(example_dict)
این منجر به:
3 elements have been added:
{0: 'Apples', 2: 'Mangoes', 3: 20}
توجه داشته باشید: با شروع از پایتون 3.7، دیکشنری ها ترتیب موارد را بر اساس حفظ می کنند روی درج آنها این رفتار در پایتون 3.8+ تضمین شده است.
برای افزودن عناصر، کلیدها و همچنین مقادیر مربوطه را مشخص کردیم:
example_dict(0) = 'Apples'
در مثال بالا، 0
کلید در حالی است Apples
ارزش است. حتی این امکان برای ما وجود دارد که مجموعه ای از مقادیر را به یک کلید اضافه کنیم تا زمانی که آن مجموعه به عنوان یک مقدار واحد قابل ارجاع باشد، مانند یک مجموعه:
example_dict('Values') = 1, "Pairs", 4
print("3 elements have been added: ")
print(example_dict)
و یک کلید داریم که مقدار آن یک مجموعه است:
3 elements have been added:
{'Values': (1, 'Pairs', 4)}
به غیر از افزودن عناصر جدید به فرهنگ لغت، عناصر فرهنگ لغت را نیز می توان به روز کرد/تغییر داد که در بخش بعدی به آن خواهیم پرداخت.
چگونه عناصر دیکشنری را به روز کنیم
پس از افزودن یک مقدار به یک فرهنگ لغت، می توانیم عنصر فرهنگ لغت موجود را تغییر دهید. شما از کلید عنصر برای تغییر مقدار مربوطه استفاده می کنید:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
example_dict("year") = 2014
print(example_dict)
در این مثال، مقدار کلید را به روز کرده ایم year
از ارزش قدیمی 2012
به یک مقدار جدید از 2014
:
{'year': 2014, 'model': 'Premio', 'Company': 'Toyota'}
چگونه عناصر دیکشنری را حذف کنیم
حذف یک عنصر از دیکشنری به روش های مختلفی انجام می شود که در این قسمت یکی یکی به آن می پردازیم.
این del
کلمه کلیدی می توان برای حذف عنصر با کلید مشخص شده استفاده کرد. ما باید زنگ بزنیم del
کلمه کلیدی به دنبال نام فرهنگ لغت. در داخل پرانتزهای مربعی که از نام دیکشنری پیروی می کنند، کلید عنصری را که باید از فرهنگ لغت حذف کنیم، عبور دادیم. year
:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
del example_dict("year")
print(example_dict)
این ورودی برای را حذف می کند year
:
{'Company': 'Toyota', 'model': 'Premio'}
راه دیگری برای حذف a ارزش کلیدی جفت استفاده از pop()
روش و کلید ورودی برای حذف را به عنوان آرگومان متد ارسال کنید:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
example_dict.pop("year")
print(example_dict)
استناد کردیم pop()
روش با ضمیمه کردن آن با نام فرهنگ لغت. اجرای این کد ورودی برای a حذف می شود year
در فرهنگ لغت:
{'Company': 'Toyota', 'model': 'Premio'}
اگر کلید را مشخص نکنید، popitem()
روش آخرین مورد درج شده در فرهنگ لغت را حذف می کند:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
example_dict.popitem()
print(example_dict)
آخرین ورودی به فرهنگ لغت بود year
. پس از تماس حذف شده است popitem()
روش:
{'Company': 'Toyota', 'model': 'Premio'}
اما اگه بخوای چی کل دیکشنری را حذف کنید? استفاده از یکی از این روش ها دشوار و دست و پا گیر خواهد بود روی تک تک کلیدها در عوض، شما می توانید استفاده کنید del
کلمه کلیدی برای حذف کل فرهنگ لغت:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
del example_dict
print(example_dict)
اما، این کد یک خطا برمی گرداند. دلیل آن این است که ما سعی می کنیم به دیکشنری دسترسی پیدا کنیم که از زمان وجود آن وجود ندارد حذف شده از قبل:
NameError: name 'example_dict' is not defined
بسته به روی در مورد استفاده، ممکن است لازم باشد همه عناصر فرهنگ لغت را حذف کنید، اما نه خود فرهنگ لغت. این را می توان با تماس گرفتن به دست آورد clear()
روش روی لغت نامه:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
example_dict.clear()
print(example_dict)
این به شما یک فرهنگ لغت خالی می دهد (زیرا همه عناصر فرهنگ لغت حذف شده اند):
{}
سایر روش های دیکشنری رایج در پایتون
علاوه بر روشهایی که تاکنون پوشش دادهایم، پایتون روشهای جالب دیگری را در اختیار ما قرار میدهد که به ما کمک میکنند تا عملیاتی غیر از موارد اساسی که قبلا توضیح داده شد انجام دهیم. در بخشهای فرعی بعدی، روشهای دیگری را که میتوانید در کنار دیکشنریها در پایتون استفاده کنید، بررسی خواهیم کرد.
توجه داشته باشید: به یاد داشته باشید که روش هایی مانند keys()
، values()
، و items()
برگشت مشاهده اشیاء، که ماهیتی پویا دارند. این بدان معناست که اگر فرهنگ لغت تغییر کند، این نماها تغییر را منعکس خواهند کرد.
len() روش
با این روش می توانید تعداد عناصر یک فرهنگ لغت را بشمارید:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
print(len(example_dict))
سه مدخل در فرهنگ لغت وجود دارد، از این رو روش برمی گردد 3
:
3
کپی 🀄() روش
این روش یک کپی از فرهنگ لغت موجود را برمی گرداند:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = example_dict.copy()
print(x)
بیایید مطمئن شویم که کپی به درستی ساخته شده و به متغیر اختصاص داده شده است x
:
{'Company': 'Toyota', 'year': 2012, 'model': 'Premio'}
بعد از چاپ x
در console، می بینید که حاوی همان عناصر ذخیره شده در است example_dict
فرهنگ لغت.
توجه داشته باشید: این مفید است زیرا تغییرات ایجاد شده در فرهنگ لغت کپی شده بر فرهنگ لغت اصلی تأثیر نمی گذارد.
موارد() روش
هنگامی که این متد فراخوانی می شود، یک شی تکرار پذیر را برمی گرداند. مفعول تکرار شونده دارد ارزش کلیدی جفت برای فرهنگ لغت، به عنوان چند تا در یک لیست. این روش در درجه اول زمانی استفاده می شود که می خواهید از طریق فرهنگ لغت تکرار کنید.
روش به سادگی نامیده می شود روی نام شی دیکشنری:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
for k, v in example_dict.items():
print(k, v)
این منجر به:
('Company', 'Toyota')
('model', 'Premio')
('year', 2012)
شیء توسط items()
همچنین می تواند برای نشان دادن تغییرات اعمال شده در فرهنگ لغت استفاده شود:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = example_dict.items()
print(x)
example_dict("model") = "Mark X"
print(x)
این کد نشان می دهد که وقتی مقداری را در فرهنگ لغت تغییر می دهید، items
شی نیز برای منعکس کردن این تغییر به روز می شود:
dict_items((('Company', 'Toyota'), ('model', 'Premio'), ('year', 2012)))
dict_items((('Company', 'Toyota'), ('model', 'Mark X'), ('year', 2012)))
کلیدها() روش
این متد یک شیء تکرارپذیر را نیز برمی گرداند. شی برگردانده شده فهرستی از تمام کلیدهای فرهنگ لغت است. و درست مثل با items()
روش، شیء برگشتی می تواند برای منعکس کردن تغییرات ایجاد شده در فرهنگ لغت استفاده شود.
برای استفاده از این روش فقط آن را فراخوانی می کنیم روی نام فرهنگ لغت:
dictionary.keys()
مثلا:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = example_dict.keys()
print(x)
این به ما می دهد:
dict_keys(('model', 'Company', 'year'))
اغلب اوقات از این روش استفاده می شود از طریق هر کلید تکرار کنید در فرهنگ لغت شما:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
for k in example_dict.keys():
print(k)
این اراده print هر کلید از example_dict
در یک خط جداگانه:
Company
model
year
fromkeys() روش
این روش یک فرهنگ لغت را با کلیدها و مقادیر مشخص برمی گرداند:
dictionary.fromkeys(keys, value)
مقدار مورد نیاز keys
پارامتر قابل تکرار است و کلیدهای فرهنگ لغت جدید را مشخص می کند. ارزش برای value
پارامتر اختیاری است و مقدار پیش فرض را برای همه کلیدها مشخص می کند. مقدار پیش فرض برای این است None
.
فرض کنید ما باید یک فرهنگ لغت از سه کلید ایجاد کنیم که همه آنها دارای یک مقدار هستند 25
:
name = ('John', 'Nicholas', 'Mercy')
age = 25
example_dict = dict.fromkeys(name, age)
print(example_dict)
بیایید بررسی کنیم که fromkeys()
متد دیکشنری را که توضیح دادیم ایجاد کرد:
{'John': 25, 'Mercy': 25, 'Nicholas': 25}
همانطور که انتظار می رفت، fromkeys()
متد قادر به انتخاب کلیدها و ترکیب آنها با مقدار بود 25
برای ایجاد دیکشنری که می خواستیم.
ارزش برای keys
پارامتر اجباری است مثال زیر نشان می دهد که چه اتفاقی می افتد زمانی که مقدار برای values
پارامتر مشخص نشده است:
name = ('John', 'Nicholas', 'Mercy')
example_dict = dict.fromkeys(name)
print(example_dict)
در این مورد، None
به عنوان مقدار پیش فرض استفاده شد:
{'John': None, 'Mercy': None, 'Nicholas': None}
مجموعه پیش فرض() روش
این روش زمانی قابل اجراست که باید مقدار عنصر را با کلید مشخص شده بدست آوریم. اگر کلید پیدا نشد، در کنار مقدار پیش فرض مشخص شده در فرهنگ لغت وارد می شود.
متد دستور زیر را می گیرد:
dictionary.setdefault(keyname, value)
در این روش، keyname
پارامتر مورد نیاز است. این نشان دهنده نام کلید موردی است که باید مقداری را از آن برگردانید. این value
پارامتر اختیاری است اگر فرهنگ لغت از قبل دارای کلید باشد، این پارامتر هیچ تاثیری نخواهد داشت. اگر کلید وجود نداشته باشد، مقدار داده شده در این روش به مقدار کلید تبدیل می شود. دارای مقدار پیش فرض است None
:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = example_dict.setdefault("color", "Gray")
print(x)
فرهنگ لغت کلیدی برای آن ندارد color
. این setdefault()
متد این کلید و مقدار مشخص شده را وارد کرده است، یعنی Gray
، به عنوان مقدار آن استفاده شده است:
Gray
مثال زیر نشان می دهد که در صورت مقدار کلید، روش چگونه رفتار می کند وجود دارد:
example_dict = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = example_dict.setdefault("model", "Allion")
print(x)
ارزش Allion
تاثیری ندارد روی فرهنگ لغت از آنجایی که ما قبلاً یک مقدار برای کلید داریم model
:
Premio
درک فرهنگ لغت
درک فرهنگ لغت، شبیه به فهرست و مجموعه درک، روشی مختصر برای ایجاد فرهنگ لغت ارائه می دهد. کاربردهای رایج شامل ساخت فرهنگ لغت از تکرارپذیرها، تغییر فرهنگ لغت های موجود، یا فیلتر کردن محتوای فرهنگ لغت است. این بخش شما را از طریق مکانیک و کاربردهای بالقوه درک فرهنگ لغت راهنمایی می کند.
نحو اصلی درک فرهنگ لغت تقریباً شبیه به آنچه برای درک لیست استفاده می شود است:
{key_expr: value_expr for item in iterable}
این key_expr
و value_expr
عباراتی هستند که جفت های کلید-مقدار را بر اساس تعریف می کنند روی جاری item
در iterable
.
برای نشان دادن این موضوع، اجازه دهید یک فرهنگ لغت بسازیم که اعداد را به مربع های آنها ترسیم می کند:
squares = {x: x*x for x in range(6)}
print(squares)
گاهی اوقات، شما دوست دارید مقادیر خاصی را فیلتر کنید هنگام ایجاد فرهنگ لغت برای این منظور می توانید شرایطی را در نحو درک دیکشنری معرفی کنید:
even_squares = {x: x*x for x in range(6) if x % 2 == 0}
print(even_squares)
درک دیکشنری در پایتون مکانیزم قدرتمندی است که ما را قادر میسازد خیلی بیشتر از ایجاد فرهنگ لغت ساده انجام دهیم. به عنوان مثال، شما همچنین می توانید از آن برای ایجاد و دسترسی استفاده کنید لغت نامه های تو در تو:
matrix = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
transpose = {j: {i: matrix(i)(j) for i in range(3)} for j in range(3)}
print(transpose)
ترکیب کردن zip()
عملکرد با درک فرهنگ لغت می تواند به شما کمک کند یک دیکشنری از دو لیست ایجاد کنید – یکی حاوی کلیدها و دیگری حاوی مقادیر فرهنگ لغت جدید ایجاد شده:
keys = ('a', 'b', 'c')
values = (1, 2, 3)
result = {k: v for k, v in zip(keys, values)}
print(result)
آخرین استفاده از درک فرهنگ لغت که در این مقاله به آن خواهیم پرداخت، _تغییر فرهنگ لغت موجود است. فرض کنید می خواهید یک فرهنگ لغت جدید از یک فرهنگ لغت موجود ایجاد کنید، که در آن هر مقدار 1 افزایش می یابد:
original = {'a': 1, 'b': 2, 'c': 3}
incremented = {k: v + 1 for k, v in original.items()}
print(incremented)
تکرار از طریق فرهنگ لغت
تکرار یک عملیات اساسی در برنامه نویسی است، و وقتی صحبت از فرهنگ لغت به میان می آید، پایتون چندین روش بصری را برای عبور از کلیدها، مقادیر یا هر دو ارائه می دهد. بیایید تکنیک ها و سناریوهای مختلف برای تکرار در فرهنگ لغت را بررسی کنیم.
تکرار روی کلیدها (رفتار پیش فرض)
هنگامی که مستقیماً با استفاده از یک دیکشنری حلقه می زنید for
حلقه، روی آن تکرار می شود کلیدها به صورت پیش فرض:
person = {'name': 'John', 'age': 30, 'city': 'New York'}
for key in person:
print(key)
این منجر به:
name
age
city
ما می توانیم به همان رفتار (اما به طور واضح تر) با استفاده از keys()
روش:
for key in person.keys():
print(key)
از تغییر اندازه یک فرهنگ لغت در حین تکرار روی آن اجتناب کنید. اگر نیاز به حذف موارد دارید، تکرار را روی یک کپی از کلیدهای فرهنگ لغت در نظر بگیرید:
for key in list(my_dict.keys()):
if some_condition(key):
del my_dict(key)
تکرار بیش از ارزش ها با استفاده از ارزش های()
ما استفاده خواهیم کرد values()
روشی که به ما کمک می کند تا همه موارد را حلقه بزنیم ارزش های در فرهنگ لغت:
for value in person.values():
print(value)
خروجی:
John
30
New York
تکرار جفت های کلید-مقدار با استفاده از موارد()
این متد هم کلید و هم مقدار متناظر آن را برمی گرداند که می تواند مستقیماً در حلقه باز شود:
for key, value in person.items():
print(f"{key}: {value}")
این به ما می دهد:
name: John
age: 30
city: New York
Nested Dictionaries Iteration
اگر لغت نامه هایی در فرهنگ لغت دارید، برای عبور از آنها به حلقه های تودرتو نیاز دارید:
people = {
'john': {'age': 30, 'city': 'New York'},
'marie': {'age': 22, 'city': 'Boston'}
}
for name, info in people.items():
print(f"{name.title()}:")
for key in info:
print(f" {key.capitalize()}: {info(key)}")
ما یک خروجی با فرمت زیبا دریافت خواهیم کرد:
John:
Age: 30
City: New York
Marie:
Age: 22
City: Boston
تکرار شرطی
همچنین می توانید شرایط را در حلقه ها برای الزامات خاص ادغام کنید:
for key, value in person.items():
if isinstance(value, str):
print(key)
از آنجایی که ارزش age
کلید یک عدد صحیح است، چاپ نمی شود:
name
city
فرهنگ لغت و حافظه
دیکشنری ها، در حالی که بسیار همه کاره و کارآمد هستند، به دلیل ساختارهای داده و مکانیسم های زیربنایی خود می توانند حافظه فشرده نیز داشته باشند. هدف این بخش بررسی مفاهیم حافظه استفاده از دیکشنری ها در پایتون، ارائه بینش و بهترین شیوه ها برای اطمینان از استفاده بهینه از حافظه است.
مشاوره: در مواردی که به عملکرد یک فرهنگ لغت کامل نیاز ندارید، از a استفاده کنید list
از tuples
یا الف namedtuple
.
دلایل مختلفی وجود دارد زیرا لغت نامه ها می توانند حافظه فشرده باشند. اول از همه، دیکشنری ها اساساً با استفاده از جداول هش به عنوان زیرپوششان پیاده سازی می شوند. این تضمین می کند O (1) پیچیدگی متوسط برای جستجوها اما به حافظه اضافی برای ذخیره هش ها، شاخص های جدول و رسیدگی به برخوردها نیاز دارد. به غیر از آن، دیکشنری های پایتون طوری طراحی شده اند که وقتی به ضریب بار معینی می رسند، اندازه آنها را تغییر می دهند. این بدان معناست که حافظه ممکن است از قبل تخصیص داده شود، حتی اگر بلافاصله استفاده نشود.
اگر علاقه مند به بررسی میزان استفاده از حافظه یک فرهنگ لغت هستید، می توانید این کار را با استفاده از Python انجام دهید sys
مدول:
import sys
person = {'name': 'John', 'age': 30, 'city': 'New York'}
print(sys.getsizeof(person))
اما در مورد اندازه دیکشنری های خود چه کاری می توانید انجام دهید؟ بیایید به چند نکته نگاهی بیندازیم که می تواند به شما در مدیریت بهتر اندازه فرهنگ لغت کمک کند. اول از همه، اگر یک فرهنگ لغت بزرگ شود و سپس کوچک شود (پس از حذف)، ممکن است همچنان اندازه اختصاص داده شده بزرگ را حفظ کند. در آن صورت استفاده کنید dict.copy()
به یک کپی کوچکتر ایجاد کنید. علاوه بر این، برای دیکشنری هایی با مجموعه کلیدهای یکسان (مانند اشیاء یک کلاس)، اشتراک گذاری کلید می تواند حافظه را ذخیره کند. این تکنیک شامل استفاده از یک بلوک حافظه برای ذخیره کلیدها برای چندین فرهنگ لغت است.
آگاه بودن از مفاهیم حافظه به این معنی نیست که باید از فرهنگ لغت دوری کنید. درعوض، با رویکردی آگاهانه، میتوانید از آنچه که دیکشنریها ارائه میدهند، بدون مصالحه استفاده کنید روی عملکرد سیستم.
نتیجه
این نشان دهنده پایان این راهنما است روی فرهنگ لغت پایتون این دیکشنری ها داده ها را در ارزش کلیدی جفت این کلید به عنوان شناسه برای آیتم عمل می کند در حالی که ارزش ارزش مورد است. فرهنگ لغت پایتون با روش های مختلفی ارائه می شود که می توانند برای بازیابی یا دستکاری داده ها استفاده شوند. در این مقاله، دیدیم که چگونه یک دیکشنری پایتون را می توان ایجاد، تغییر داد و حذف کرد، همراه با برخی از متداول ترین روش های دیکشنری.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-06 13:12:04