ترفندهای کاربرد حلقه در پایتون | به زبان ساده

۴۱۰ بازدید
آخرین به‌روزرسانی: ۲۸ خرداد ۱۴۰۱
زمان مطالعه: ۴ دقیقه
دانلود PDF مقاله
ترفندهای کاربرد حلقه در پایتون | به زبان سادهترفندهای کاربرد حلقه در پایتون | به زبان ساده

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

997696

Zip برای چرخش هم‌زمان روی دو لیست

یکی از ابزارهایی که بسیار مفید است، امکان چرخش هم‌زمان روی دو آرایه است. اجرای این کار در زبان‌های دیگر بسیار دشوار است، اما در پایتون به سهولت انجام می‌یابد.

برای چرخش هم‌زمان روی دو آرایه باید صرفاً از متد zip()‎ استفاده کنیم.

نمونه خوبی از نمایش این موضوع در مواردی است که یک لیست از اعداد زوج و یک لیست از اعداد فرد داریم:

خروجی مثال فوق به صورت زیر است:

1
2
3
4
5
6
7
8
9
10

In Range برای نوشتن حلقه‌های شبیه زبان C

با این که زبان C ممکن است ابتدایی به نظر برسد، اما کارهای جالب زیادی با حلقه‌های به سبک زبان C می‌توان انجام داد.

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

()Enumerate برای اندیس کردن ابعاد

متد Enumerate در پایتون موجب می‌شود بتوانیم اندیس‌های لیست را به صورتی که از آرایه به دست می‌آیند، شماره‌گذاری کنیم. برای نشان دادن این موضوع یک مثال از لیست سه عنصری ارائه می‌کنیم:

اکنون می‌توانید به صورت زیر به اندیس‌های آرایه دسترسی پیدا کنید:

l[1]
10
l[0]
5
l[2]
15

در زمانی که روی این لیست‌ها «شمارش» (Enumerate) می‌کنید، موقعیت اندیس ابعاد به دست می‌آید و ابعاد به صورت یک متغیر جدید ذخیره می‌شود. به نوع متغیر جدید توجه کنید:

ترفندهای کاربرد حلقه در زبان پایتون

پایتون به صورت خودکار این اندیس‌ها را در یک چندتایی قرار می‌دهد. این کار عجیب به نظر ‌می‌رسد و شاید بهتر بود که نتایج در یک دیکشنری یک عنصری پایتون ارائه می‌شد. خوشبختانه همواره می‌توان این Enumerate را به یک دیکشنری پایتون تبدیل کرد. روش کار با استفاده از type assertion به صورت زیر است:

که نتیجه زیر را به دست می‌دهد:

>>> data
{0: 5, 1: 10, 2: 15}

()Sorted برای مرتب‌سازی داده‌ها

متد sort یک متد ضروری برای کار با حجم بالایی از داده‌ها محسوب می‌شود. این کاری است که دانشمندان علوم داده همواره انجام می‌دهند. مرتب‌سازی مطابق انتظار ما کار می‌کند و رشته‌‌ها با ترتیب الفبایی مرتب می‌شوند. اعداد صحیح و اعشاری نیز از ‎∞- به سمت بالا مرتب‌سازی می‌شوند. نکته مهمی که باید در مورد این تابع اشاره کنیم، این است که با لیست‌های شامل رشته‌ها و اعداد صحیح یا اعشاری کار نمی‌کند.

با تعیین پارامتر reverse به صورت true می‌توانیم مرتب‌سازی را به صورت معکوس نیز اجرا کنیم:

همچنین می‌توانیم از یک کلید به عنوان پارامتر آخر استفاده کنیم. این کلید تابعی است که روی هر بُعد درون یک حلقه مفروض اعمال می‌شود. به این منظور می‌توانیم از لامبدا استفاده کنیم که یک تابع بی‌نام، اما قابل فراخوانی ایجاد می‌کند.

()Filter برای چرخش روی داده‌های خاص

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

سخن پایانی

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

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
towardsdatascience
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *