آموزش پایتون - پیمایش لیست

پیمایش روی عناصر لیست

پیمایش روی عناصر لیست در پایتون به معنای تکرار روی تک‌تک عناصر موجود در یک لیست است. ما این کار را برای انجام عملیات دلخواه روی هر عنصر انجام می‌دهیم. این عملیات شامل تغییر لیست، عملیات شرطی، دستکاری رشته، تحلیل داده و غیره می‌شود.

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

پیمایش روی عناصر لیست با حلقه For

حلقه for در پایتون برای پیمایش روی یک دنباله (مانند لیست، تاپل، دیکشنری، رشته یا range) یا هر شیء قابل پیمایش دیگری استفاده می‌شود. این حلقه به شما امکان می‌دهد یک بلوک کد را به ازای هر عنصر در دنباله به طور تکراری اجرا کنید.

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

سنتکس

در ادامه سنتکس پایه برای پیمایش روی عناصر یک لیست با استفاده از حلقه for در پایتون آمده است −

for item in list:
   # Code block to execute

مثال

در مثال زیر، از یک حلقه for برای پیمایش روی هر عنصر در لیست "lst" استفاده می‌کنیم و هر عنصر را به همراه یک فاصله در همان خط بازخوانی می‌کنیم −

lst = [25, 12, 10, -21, 10, 100]
for num in lst:
   print (num, end = ' ')

خروجی

خروجی کد بالا به شرح زیر است −

25 12 10 -21 10 100

پیمایش روی عناصر لیست با حلقه While

حلقه while در پایتون برای اجرای تکراری یک بلوک کد تا زمانی که یک شرط مشخص ارزیابی شده برابر با "True" باشد، استفاده می‌شود.

ما می‌توانیم با مقداردهی اولیه یک متغیر اندیس، سپس پیمایش در لیست با استفاده از متغیر اندیس و افزایش آن تا رسیدن به انتهای لیست، روی عناصر لیست با حلقه while پیمایش کنیم.

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

سنتکس

در ادامه سنتکس پایه برای پیمایش روی عناصر یک لیست با استفاده از حلقه while در پایتون آمده است −

while condition:
   # Code block to execute

مثال

در مثال زیر، با استفاده از حلقه while روی هر عنصر در لیست "my_list" پیمایش می‌کنیم. ما از یک متغیر اندیس "index" برای دسترسی ترتیبی به هر عنصر استفاده می‌کنیم و پس از هر تکرار آن را افزایش می‌دهیم تا به عنصر بعدی برویم −

my_list = [1, 2, 3, 4, 5]
index = 0

while index < len(my_list):
   print(my_list[index])
   index += 1

خروجی

خروجی کد بالا به صورت زیر است −

1
2
3
4
5

پیمایش روی عناصر لیست با اندیس

اندیس یک مقدار عددی است که موقعیت یک عنصر را در یک دنباله مانند لیست نشان می‌دهد، که برای اولین عنصر از 0 شروع می‌شود.

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

مثال

این مثال یک لیست "lst" را با اعداد صحیح مقداردهی اولیه می‌کند و بازه‌ای از اندیس‌های مربوط به طول لیست را می‌سازد. سپس، روی هر اندیس در این بازه پیمایش کرده و مقدار موجود در آن اندیس در لیست "lst" را چاپ می‌کند −

lst = [25, 12, 10, -21, 10, 100]
indices = range(len(lst))
for i in indices:
   print ("lst[{}]: ".format(i), lst[i])

خروجی

خروجی را به صورت زیر دریافت می‌کنیم −

lst[0]: 25
lst[1]: 12
lst[2]: 10
lst[3]: -21
lst[4]: 10
lst[5]: 100

پیمایش با استفاده از List Comprehension

مفهوم List Comprehension در پایتون یک روش فشرده و خلاصه برای ساخت لیست‌ها با اعمال یک عبارت (expression) روی هر عنصر از یک شیء قابل پیمایش است. این عبارت‌ها می‌توانند عملیات ریاضی، فراخوانی توابع، عبارت‌های شرطی و غیره باشند.

ما می‌توانیم با مشخص کردن عبارت و شیء قابل پیمایش ( مانند لیست، تاپل، دیکشنری، رشته یا range) با استفاده از list comprehension پیمایش کنیم. سنتکس به شرح زیر است −

[expression for item in iterable]

این کار عبارت را روی هر عنصر در شیء قابل پیمایش اعمال کرده و لیستی از نتایج را ایجاد می‌کند.

مثال

در این مثال، از list comprehension برای پیمایش روی هر عدد در لیستی از اعداد استفاده می‌کنیم، هر کدام را به توان دو می‌رسانیم و نتیجه به توان دو رسیده را در لیست جدید "squared_numbers" ذخیره می‌کنیم −

numbers = [1, 2, 3, 4, 5]
squared_numbers = [num ** 2 for num in numbers]
print (squared_numbers)

خروجی

خروجی را به صورت زیر دریافت می‌کنیم −

[1, 4, 9, 16, 25]

پیمایش با استفاده از تابع ()enumerate

تابع ()enumerate در پایتون برای پیمایش روی یک شیء قابل پیمایش و هم‌زمان ارائه اندیس هر عنصر استفاده می‌شود.

ما می‌توانیم با اعمال تابع ()enumerate روی شیء قابل پیمایش، عمل پیمایش را انجام دهیم. سنتکس به شرح زیر است −

for index, item in enumerate(iterable):

این کار هم اندیس و هم خود عنصر را برای هر عضو در شیء قابل پیمایش در طول پیمایش فراهم می‌کند.

مثال

در مثال زیر، ما از تابع ()enumerate برای پیمایش در لیست "fruits" و بازخوانی هر میوه به همراه اندیس مربوط به آن استفاده می‌کنیم −

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
   print(index, fruit)

خروجی

خروجی را به صورت زیر دریافت می‌کنیم −

0 apple
1 banana
2 cherry

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.