
روز ۳۶ آموزش پایتون: لیست و دیکشنری پیشرفته با Comprehension
در برنامه نویسی پایتون، لیستها و دیکشنریها ابزارهای اصلی برای ذخیره و پردازش دادهها هستند. یادگیری تکنیکهای پیشرفته مانند list comprehension و dictionary comprehension باعث میشود کدها کوتاهتر، خواناتر و حرفهایتر شوند. این مهارتها در پروژههای واقعی کاربرد زیادی دارند، زیرا اغلب نیاز داریم مجموعههای داده بزرگ را فیلتر، تغییر یا تبدیل کنیم و بدون استفاده از حلقههای طولانی، نتایج را در ساختار مناسب ذخیره کنیم. با استفاده از comprehension میتوانیم عملیات پیچیده روی دادهها را با یک خط کد انجام دهیم و برنامهها را بهینه و سریعتر بنویسیم.
لیست پیشرفته و List Comprehension
لیستها در پایتون میتوانند شامل هر نوع دادهای باشند و حتی لیستهای تو در تو بسازند. با استفاده از list comprehension میتوانیم یک لیست جدید بسازیم، دادهها را فیلتر کنیم یا روی آنها عملیاتی انجام دهیم بدون اینکه به حلقههای for و append طولانی نیاز داشته باشیم. این روش خوانایی کد را افزایش میدهد و برای پردازش سریع دادهها ایدهآل است.
نمونه کد لیست پیشرفته:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] squared_even_numbers = [n**2 for n in numbers if n % 2 == 0] print(squared_even_numbers) # خروجی: [4, 16, 36, 64, 100]
در این مثال، با یک خط کد، تمام اعداد زوج را از لیست اصلی انتخاب کرده و توان دوم آنها را محاسبه کردیم. بدون list comprehension، این عملیات به چندین خط کد و حلقه نیاز داشت و احتمال خطا بیشتر بود.
دیکشنری پیشرفته و Dictionary Comprehension
دیکشنریها نیز قابلیت پیشرفتهای دارند که مشابه لیست comprehension است و به کمک آن میتوانیم مجموعهای از کلید-مقدارها را سریع بسازیم یا تغییر دهیم. این تکنیک برای پردازش دادههای ساختاری بسیار کاربرد دارد و باعث میشود کدهای خواناتر و کمحجمتری بنویسیم.
نمونه کد دیکشنری پیشرفته:
words = ["apple", "banana", "cherry"]
word_length = {word: len(word) for word in words}
print(word_length) # خروجی: {'apple': 5, 'banana': 6, 'cherry': 6}در این مثال، برای هر کلمه در لیست، طول آن محاسبه شده و یک دیکشنری با کلید کلمه و مقدار طول آن ساخته شده است. بدون dictionary comprehension، باید از حلقه و دستور اضافه کردن دستی به دیکشنری استفاده میکردیم.
لیست و دیکشنری تو در تو با Comprehension
گاهی اوقات دادهها به صورت تو در تو هستند و نیاز داریم روی آنها عملیات پیچیده انجام دهیم. با ترکیب list و dictionary comprehension میتوانیم دادهها را فیلتر، تغییر و تبدیل کنیم بدون اینکه کد طولانی و پیچیده بنویسیم. این روش برای کار با دادههای واقعی و پروژههای متوسط و بزرگ ضروری است.
نمونه کد تو در تو:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [num for row in matrix for num in row if num % 2 != 0]
print(flattened) # خروجی: [1, 3, 5, 7, 9]
nested_dict = {i: {j: j**2 for j in range(3)} for i in range(3)}
print(nested_dict)
# خروجی: {0: {0: 0, 1: 1, 2: 4}, 1: {0: 0, 1: 1, 2: 4}, 2: {0: 0, 1: 1, 2: 4}}در این مثالها، لیست اعداد فرد از یک ماتریس استخراج شده و یک دیکشنری تو در تو با مقادیر محاسبه شده ساخته شده است. این تکنیکها سرعت توسعه و خوانایی کد را به شکل قابل توجهی افزایش میدهند.
در این روز، یاد گرفتیم چگونه با استفاده از list و dictionary comprehension، عملیات پیچیده روی دادهها را به شکل خوانا، کوتاه و حرفهای انجام دهیم. همچنین با ترکیب comprehension و ساختارهای تو در تو، میتوانیم دادههای پیچیده را به صورت ساختاریافته مدیریت کنیم. این مهارتها در پروژههای واقعی مانند تحلیل دادهها، پردازش لیستها و ساختارهای ذخیرهسازی، سیستمهای فروشگاهی و مدیریت کتابخانه کاربرد بسیار زیادی دارند. تمرین پیشنهادی این است که مجموعهای از دادههای واقعی را به صورت دیکشنری و لیست تو در تو بسازید و با comprehension آنها را فیلتر و پردازش کنید تا تسلط کامل بر این تکنیکها پیدا کنید.
