از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
فهرست درک در پایتون
سرفصلهای مطلب
معرفی
آ فهرست یکی از انواع داده های اساسی در پایتون است. هر بار که با نام متغیری روبرو می شوید که با یک براکت مربع دنبال می شود ()
، یا الف list
سازنده، لیستی است که می تواند چندین آیتم را در خود داشته باشد و آن را بسازد یک نوع داده مرکب. به همین ترتیب، اعلام یک لیست جدید و متعاقباً افزودن یک یا چند مورد به آن نیز آسان است.
مروری کوتاه بر لیست ها در پایتون
بیایید یک لیست جدید ایجاد کنیم:
new_list = (1, 2, 3, 4, 5)
print(new_list)
یا می توانیم به سادگی از آن استفاده کنیم append()
روش اضافه کردن هر چیزی که می خواهید به لیست:
new_list.append(6)
print(new_list)
اگر نیاز دارید چندین مورد را به یک لیست اضافه کنید، extend()
روش به کار خواهد آمد. شما به سادگی باید لیست مواردی را که باید به آن اضافه کنید ارسال کنید extend
روش، همانطور که در زیر نشان داده شده است:
new_list.extend((7, 8, 9))
print(new_list)
همانطور که می بینید، ایجاد یک لیست و الحاق آن به موارد دیگر فقط یک تکه کیک است. شما می توانید این کار را بدون نیاز به برقراری تماس های متعدد با آن انجام دهید .append()
روش.
به طور مشابه، می توانید از a for
حلقه برای اضافه کردن چندین مورد به یک لیست. به عنوان مثال، ما باید کد زیر را برای ایجاد یک لیست مربع برای اعداد صحیح 1-20 بنویسیم.
list_a = ()
for i in range(1, 20):
list_a.append(i**2)
درک لیست در پایتون چیست؟
در ساده ترین کلمات، درک لیست عبارت است از process ایجاد یک لیست جدید از یک لیست موجود یا می توانید بگویید که این روش منحصر به فرد پایتون برای الحاق a است for
حلقه به یک لیست اما، در حال حاضر بسیار ساده است که یک لیست را اعلام کنید و هر چیزی را که دوست دارید به آن اضافه کنید. اینطور نیست؟ بنابراین، چرا برای درک لیست های ما زحمت بکشید؟
درک لیست، در واقع، مزایای بسیاری را نسبت به لیست های سنتی ارائه می دهد. برای شروع، کد فقط در یک خط قرار می گیرد، که بیان و خواندن آن را آسان تر می کند. همچنین درک لیست ها نسبت به استفاده از آن دشوارتر است for
حلقه ها برای اعلام یک مورد جدید. در نهایت، این نیز یک راه راحت، سریعتر و شهودی برای ایجاد یک لیست جدید و پرجمعیت است.
با بازگشت به مربع های اعداد صحیح 1-20، می توانیم همان نتیجه را با استفاده از روش درک لیست بدست آوریم. در اینجا کد ما اکنون شبیه به آن است:
list_b = (i**2 for i in range(1, 20))
توجه کنید که چگونه منطق تولید آیتم های لیست در پرانتز پیچیده شده است. در بخش بعدی بیشتر در مورد نحو توضیح خواهیم داد.
فهرست نحوی درک
قبل از حرکت به جلو، توضیح نحو درک لیست ضروری است. در اینجا نحو اصلی درک لیست است که شامل یک شرط است:
(expression for item in list if conditional)
ممکن است کمی عقب مانده به نظر برسد expression
بودن قبل از حلقه، اما این روش انجام می شود! احتمالاً ترتیب به این صورت است، زیرا قرار دادن آن دشوار است expression
بعد از را conditional
بدون نوعی نقطه ویرگول که پایتون آن را ندارد.
همانطور که قبلاً حدس زده اید، expression
در واقع خروجی است که هنگام اجرای بقیه کدها در درک لیست دریافت می کنیم. خود کد فقط یک حلقه برای تکرار بر روی مجموعه ای از داده ها است. در مثال خود، ما از آن استفاده می کنیم expression
، یا خروجی، برای تولید لیست مربع ها.
توجه داشته باشید که شرطی اختیاری است، بنابراین مانند مثال بالا ما نیازی به اضافه کردن آن نداریم.
همچنین لازم به ذکر است که ما یک لیست برای حلقه زدن، آیتم یا مواردی که باید تکرار شوند و البته یک عبارت شرطی در هر دو حلقه درک لیست و سنتی برای حلقه ها داریم. بنابراین هر روش ساختارهای کلی یکسانی دارد، اما تفاوت در روش قالب بندی و سازماندهی آنها است.
همچنین برای درک بیشتر مفهوم درک لیست، نمونه دیگری و پیچیدهتر را بررسی میکنیم.
list_a = (1, 3, 6, 9, 12, 15)
list_b = ()
for number in list_a:
if number % 4 == 0:
list_b.append(number)
print(list_b)
ما در واقع در حال حلقه زدن هستیم list_a
در مثال بالا متعاقباً یک مورد را به آن اضافه می کنیم list_b
اگر مقدار آن بر 4 بخش پذیر باشد که با استفاده از عملگر مدول بررسی می شود (%
). در این مثال، موارد زیر را می بینیم که در آن چاپ شده است console:
(12)
این به این دلیل است که 12 تنها عددی در آن آرایه است که بر 4 بخش پذیر است.
یک بار دیگر، ما فقط می توانیم از درک لیست استفاده کنیم تا کل خطوط کدی را که برای رسیدن به همان هدف باید بنویسیم کاهش دهیم.
همانطور که در بالا ذکر شد، for
حلقه در عبارت بالا در حال تکرار بر روی لیستی است که نامیده شده است list_a
. سپس عبارت شرطی را اجرا می کند که بررسی می کند آیا مقدار فعلی بر 4 بخش پذیر است یا خیر. در نهایت، آن را اجرا می کند. .append()
روش زمانی که مشخص می کند که مقدار واقعاً بر 4 بخش پذیر است.
حال، اگر بخواهید کد بالا را با درک لیست بنویسید، چیزی شبیه به این خواهد بود:
list_a = (1, 3, 6, 9, 12, 15)
list_b = (number for number in list_a if number % 4 == 0)
print(list_b)
همانطور که می بینید، ما کاهش داده ایم for
حلقه، که بیش از سه خط، تنها به یک خط گسترش یافته است. این در واقع زیبایی واقعی درک لیست است.
زمان استفاده از درک لیست
شما می توانید در بسیاری از موارد که نیاز به ایجاد یک لیست از یک تکرار شونده دارید، از درک لیست استفاده کنید. با این حال، بهترین زمان برای استفاده از این روش زمانی است که نیاز دارید مواردی را به یک لیست به طور مداوم طبق یک الگوی تنظیم شده اضافه یا استخراج کنید. توسعه دهندگان پایتون بیشتر از آنها برای استخراج داده ها از مجموعه ای اغلب بزرگ از آیتم ها استفاده می کنند.
فرض کنید شما لیستی از هزاران دانش آموز فعلی و قبلی با نام، نام پدر و آدرس آنها دارید. اطلاعات هر یک از دانش آموزان در فرهنگ لغت مربوطه ذخیره می شود. اما، اگر فقط بخواهید چه؟ print نام آنها؟
students = (
{
"name" : "Jacob Martin",
"father name" : "Ros Martin",
"Address" : "123 Hill Street",
}, {
"name" : "Angela Stevens",
"father name" : "Robert Stevens",
"Address" : "3 Upper Street London",
}, {
"name" : "Ricky Smart",
"father name" : "William Smart",
"Address" : "Unknown",
}
)
ما این گزینه را داریم که با استفاده از حالت سنتی روی لیست تکرار کنیم for
حلقه:
names_list = ()
for student in students:
names_list.append(student('name'))
print(names_list)
اگرچه در این مثال فقط دو خط کد برای آن وجود دارد for
حلقه، ما حتی نیازی به نوشتن این تعداد خط نداریم. ما می توانیم با نوشتن تنها یک خط کد از طریق روش درک لیست، همان کار را انجام دهیم:
names_list = (student('name') for student in students)
print(names_list)
('Jacob Martin', 'Angela Stevens', 'Ricky Smart')
نتیجه
واقعاً شگفتانگیز است که چگونه درک لیست در واقع حجم کاری شما را نیز کاهش میدهد. با این حال، ممکن است در ابتدا گیج کننده به نظر برسد. مخصوصاً برای مبتدیانی که قبلاً هرگز وارد این قلمرو نشده اند، گیج کننده است، بیشتر به دلیل نحو. همچنین اگر به زبان های دیگر برنامه نویسی کرده اید درک این مفهوم برای شما سخت باشد زیرا درک لیست در هیچ یک از آنها وجود ندارد. تنها راه برای رسیدن به درک فهرست، تمرین سخت است.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-19 08:11:04