از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
درک دیکشنری پایتون: راهی سریع و انعطاف پذیر برای ساخت فرهنگ لغت
سرفصلهای مطلب
معرفی
دیکشنری ها یک راه بسیار قدرتمند و پایتونیک برای ذخیره داده ها هستند. آنها به ما اجازه می دهند که a key
با یک value
و در صورت نیاز به آنها دسترسی داشته باشید. این کار ذخیره دادهها را در جایی که مثلاً نیاز داریم یک رشته را با یک عدد مرتبط کنیم آسان میکند. به عنوان مثال، اگر ما نیاز به ذخیره داده های مربوط به نام ها و شماره تلفن های مرتبط داریم، فرهنگ لغت بهترین ساختار داده برای انجام این کار است.
در این مقاله، دیکشنری چیست و روش استفاده از متدولوژی درک دیکشنری برای ایجاد دیکشنری به روش پایتونیک و زیبا را مورد بحث قرار خواهیم داد. به ویژه، ایجاد فرهنگ لغت با درک مطلب در مواقعی مفید است که باید داده ها را از سایر ساختارهای داده بازیابی کنیم تا آنها را در یک فرهنگ لغت ذخیره کنیم.
دیکشنری ها چیست؟
دیکشنری یک روش پایتونیک برای ذخیره داده هایی است که به عنوان کلید و مقادیر جفت می شوند. در اینجا مثالی از این است که چگونه می توانیم یکی را ایجاد کنیم:
my_dictionary = {'key_1':'value_1', 'key_2':'value_2'}
یکی از جنبه های قدرتمند دیکشنری ها این واقعیت است که ما محدودیت خاصی نداریم روی نوع مقادیری که می توانیم در آنها ذخیره کنیم.
به عنوان مثال، ما می توانیم رشته ها و همچنین اعداد صحیح یا شناور و حتی لیست ها یا تاپل ها را ذخیره کنیم. اما همچنین میتوانیم دیکشنریهای تودرتو ایجاد کنیم، به این معنی: لغت نامهها را در یک فرهنگ لغت ذخیره کنیم.
بیایید چند نمونه را ببینیم.
فرض کنید می خواهیم نام و نام خانوادگی برخی افراد را با هم مرتبط کنیم. ما می توانیم از یک فرهنگ لغت برای ذخیره مقادیر رشته استفاده کنیم،
مثل این:
names = {'Doe': 'John', 'Bush': 'Simon', 'Johnson': 'Elizabeth'}
سپس، اگر بخواهیم نتیجه را ببینیم، فقط می توانیم print آی تی:
print(names)
و دریافت می کنیم:
{'Doe': 'John', 'Bush': 'Simon', 'Johnson': 'Elizabeth'}
در عوض، فرض کنید می خواهیم نام برخی افراد و سن آنها را ذخیره کنیم. ما می توانیم سن را به عنوان ذخیره کنیم int
ارزش ها، مانند:
ages = {'James': 15, 'Susan': 27, 'Tricia': 32}
و باز هم برای دیدن نتایج:
print(ages)
حال، فرض کنید باید یک لیست خرید بنویسیم. ما میتوانیم اقلامی را برای خرید به صورت فهرستی یا چندگانه در مقادیر فرهنگ لغت خود ذخیره کنیم. به عنوان مثال، از a استفاده کنیم list
:
shopping_list = {'fruit': ('apple', 'banana', 'orange'), 'vegetables': ('broccoli', 'salad')}
print(shopping_list)
و دریافت می کنیم:
{'fruit': ('apple', 'banana', 'orange'), 'vegetables': ('broccoli', 'salad')}
در نهایت، فرض کنید می خواهیم برخی از داده های مربوط به یک کلاس درس را ذخیره کنیم. به طور خاص، فرض کنید می خواهیم نام، سن و نمرات برخی از دانش آموزان یک کلاس را بدانیم. ما می توانیم این داده ها را به عنوان یک فرهنگ لغت تودرتو ذخیره کنیم مانند این:
classroom = {
'student_1': {
'name': 'Alice',
'age': 15,
'grades': (90, 85, 92)
},
'student_2': {
'name': 'Bob',
'age': 16,
'grades': (80, 75, 88)
},
'student_3': {
'name': 'Charlie',
'age': 14,
'grades': (95, 92, 98)
}
}
print(classroom)
و دریافت می کنیم:
{'student_1': {'name': 'Alice', 'age': 15, 'grades': (90, 85, 92)}, 'student_2': {'name': 'Bob', 'age': 16, 'grades': (80, 75, 88)}, 'student_3': {'name': 'Charlie', 'age': 14, 'grades': (95, 92, 98)}}
در حال حاضر، در حالی که ممکن است مانند آنچه در اینجا انجام دادیم، نیاز به نوشتن دیکشنری ها “با دست” داشته باشیم، واقعیت این است که در بیشتر برنامه های برنامه نویسی، ما نیاز به ایجاد فرهنگ لغت با بازیابی داده ها از منابع مختلف داریم، و اینجاست که درک دیکشنری به کار می آید.
درک فرهنگ لغت چیست؟
درک دیکشنری یک ویژگی مفید در پایتون است که به ما امکان می دهد فرهنگ لغت را به طور مختصر و کارآمد ایجاد کنیم. این ابزار قدرتمندی است که می تواند در زمان و تلاش ما صرفه جویی کند، به خصوص در هنگام کار با حجم زیادی از داده ها.
این شبیه به درک لیست است، اما به جای ایجاد یک لیست، یک فرهنگ لغت ایجاد می کند. نحو به شرح زیر است:
{key: value for (key, value) in iterable}
در نحو بالا، key
و value
به ترتیب کلیدها و مقادیری هستند که می خواهیم در فرهنگ لغت قرار دهیم. iterable
، روی از سوی دیگر، هر شیء قابل تکرار است، مانند a list
، یا الف tuple
که حاوی مقادیری است که می خواهیم به عنوان کلید و مقادیر در فرهنگ لغت استفاده کنیم.
بنابراین، بیایید تکرار شونده هایی را که می توانیم با چند مثال عملی استفاده کنیم، بررسی می کنیم.
موارد استفاده مثال
بیایید چند مثال عملی را بررسی کنیم تا نشان دهیم درک فرهنگ لغت چگونه در سناریوهای مختلف استفاده کار می کند.
دگرگونی ارزش های دیکشنری
اولین مثالی که می خواهیم نشان دهیم این است که چگونه از درک فرهنگ لغت برای تبدیل مقادیر یک فرهنگ لغت استفاده کنیم. به عنوان مثال، در نظر بگیرید که فرهنگ لغت زیر را داریم:
original_dict = {'a': '1', 'b': '2', 'c': '3'}
در این مثال، هم کلیدها و هم مقادیر هستند str
. حال فرض کنید می خواهیم نوع اعداد را به int
. می توانیم از درک فرهنگ لغت مانند زیر استفاده کنیم:
transformed_dict = {key: int(value) for key, value in original_dict.items()}
print(transformed_dict)
بنابراین، خروجی فرهنگ لغت تبدیل شده ما این است:
{'a': 1, 'b': 2, 'c': 3}
فیلتر کردن با if، if-else، و برای حلقه ها
فرض کنید ما یک فرهنگ لغت داریم که قیمت میوههای مختلف را گزارش میکند و میخواهیم میوههایی را با قیمتهای کمتر از یک آستانه مشخص فیلتر کنیم. در اینجا روش استفاده از درک فرهنگ لغت برای انجام این کار آمده است:
products = {'apple': 1.0, 'banana': 0.5, 'orange': 1.5, 'pear': 0.75}
max_price = 0.75
cheap_products = {fruit: price for fruit, price in products.items() if price <= max_price}
print(cheap_products)
و داریم:
{'banana': 0.5, 'pear': 0.75}
بنابراین، ما به راحتی سیب و پرتقال را حذف کرده ایم زیرا قیمت آنها بیشتر از آستانه ما است.
حالا بیایید مثال دیگری را ببینیم که در آن داده های خود را فیلتر می کنیم، اما در این مورد، می خواهیم از آن استفاده کنیم else
بیانیه. به عنوان مثال، در نظر بگیرید که ما یک فرهنگ لغت داریم که برخی میوه ها و قیمت آنها را گزارش می کند. ما می خواهیم یک فرهنگ لغت جدید ایجاد کنیم که در آن قیمت های بالاتر از 10 با 10٪ تخفیف داده شود. در اینجا روش انجام این کار آمده است:
products = {'apple': 1.0, 'banana': 5.0, 'orange': 15.0, 'pear': 10.0}
discounted_products = {fruit: price * 0.9 if price > 10 else price for fruit, price in products.items()}
print(discounted_products)
و دریافت می کنیم:
{'apple': 1.0, 'banana': 5.0, 'orange': 13.5, 'pear': 10.0}
بنابراین برای قیمت پرتقال (تنها با قیمت بالاتر از 10) 10 درصد تخفیف اعمال کرده ایم.
اما ما می توانیم کارهای بیشتری انجام دهیم. به عنوان مثال، فرض کنید که دوباره برخی میوه ها را با قیمت آنها ذخیره کرده ایم. می خواهیم نام یک میوه خاص و قیمت آن را استخراج کنیم. برای مثال، تصور کنید من عاشق سیب هستم. بنابراین می خواهم بدانم قیمت آنها چقدر است. این کاری است که ما می توانیم انجام دهیم:
products = {'apple': 1.0, 'banana': 0.5, 'orange': 1.5, 'pear': 0.75}
my_fruit = 'apple'
my_product = {fruit: price for fruit, price in products.items() if fruit == my_fruit}
اکنون می توانیم روی فرهنگ لغت جدید تکرار کنیم:
for fruit, price in my_product.items():
print(f"My favorite fruit is {fruit} and it costs {price}")
و دریافت می کنیم:
My favorite fruit is apple and it costs 1.0
ایجاد جداول جستجو
جدول جستجو آرایه ای است که ورودی را با مقادیر خروجی ترسیم می کند. بنابراین، به نوعی یک تابع ریاضی را تقریب میکند.
فرض کنید ما دو فرهنگ لغت داریم: یکی نگاشت نام به ایمیل و دیگری نگاشت نام به شماره تلفن همراه. ما می خواهیم یک جدول جستجو ایجاد کنیم که نام ها را به شماره تلفن ها نگاشت کند. ما می توانیم این کار را به این صورت انجام دهیم:
names_to_emails = {'Alice': '(email protected)', 'Bob': '(email protected)', 'Charlie': '(email protected)'}
emails_to_phones = {'(email protected)': '555-1234', '(email protected)': '555-5678', '(email protected)': '555-9012'}
names_to_phones = {name: emails_to_phones(email) for name, email in names_to_emails.items()}
print(names_to_phones)
و دریافت می کنیم:
{'Alice': '555-1234', 'Bob': '555-5678', 'Charlie': '555-9012'}
ایجاد فرهنگ لغت از Pandas DataFrames
ما میتوانیم از درک فرهنگ لغت برای ایجاد فرهنگ لغت با بازیابی دادهها از فریمهای داده پاندا استفاده کنیم. به عنوان مثال، در نظر بگیرید که ما یک چارچوب داده حاوی ستون هایی با نام، سن، کشور و حقوق برخی افراد داریم. ما می توانیم یک فرهنگ لغت با نام ها و سن هایی مانند این ایجاد کنیم:
import pandas as pd
df = pd.DataFrame({
'Name': ('John', 'Jane', 'Bob', 'Alice'),
'Age': (25, 30, 42, 35),
'Country': ('USA', 'Canada', 'Australia', 'UK'),
'Salary': (50000, 60000, 70000, 80000)
})
name_age_dict = {name: age for name, age in zip(df('Name'), df('Age'))}
print(name_age_dict)
و دریافت می کنیم:
{'John': 25, 'Jane': 30, 'Bob': 42, 'Alice': 35}
ایجاد دیکشنری از لیست ها و تاپل ها
ما می توانیم از درک فرهنگ لغت برای ایجاد فرهنگ لغت با بازیابی داده ها از لیست ها و تاپل ها استفاده کنیم. به عنوان مثال، اگر بخواهیم برخی از داده ها را از دو لیست بازیابی کنیم، می توانیم کد زیر را بنویسیم:
names = ('John', 'Jane', 'Bob', 'Alice')
ages = (25, 30, 42, 35)
name_age_dict = {name: age for name, age in zip(names, ages)}
print(name_age_dict)
و دریافت می کنیم:
{'John': 25, 'Jane': 30, 'Bob': 42, 'Alice': 35}
توجه داشته باشید: اگر از تاپل ها به جای لیست ها استفاده کنیم، کد یکسان خواهد بود.
نتیجه گیری
در این مقاله، دیدیم که چگونه درک فرهنگ لغت می تواند در موقعیت های مختلف عملی به ما کمک کند و با بازیابی داده ها از منابع مختلف، ایجاد فرهنگ لغت های جدید را آسان می کند. مختصر بودن درک مطلب باعث می شود که فرهنگ لغت ها ساده و سریع ایجاد شود process.
(برچسبها به ترجمه)# python
منتشر شده در 1402-12-31 17:37:06