چگونه میتوانیم در پایتون به مقدار اندیس در حلقه 'for' دسترسی پیدا کنیم؟
در پایتون، برای این کار میتوان از تابع داخلی enumerate() استفاده کرد که یک شی قابل تکرار تولید میکند که هر بار یک چندتایی (Tuple) شامل اندیس و عنصر را برمیگرداند.
برای مثال، اگر بخواهیم بر روی لیست زیر در حلقه استفاده کنیم:
xs = [8, 23, 45]
میتوانیم از enumerate() به صورت زیر استفاده کنیم:
for index, x in enumerate(xs, start=1):
print("item #{} = {}".format(index, x))
در اینجا، با تعیین مقدار start=1، اندیس از 1 آغاز میشود و خروجی به شکل زیر خواهد بود:
item #1 = 8
item #2 = 23
item #3 = 45
نکتهٔ حائز اهمیت این است که در پایتون اندیس ها معمولاً از 0 شروع میشوند و این موضوع ممکن است برخی مواقع باعث سردرگمی شود. در مواردی که میخواهید اندیش ها را از 1 بشمارید، استفاده از start=1 راهحلی مناسب است.
راه حل دیگر به جای استفاده از enumerate(), می توان از range(len(xs)) استفاده کرد. با این حال، استفاده از enumerate() نه تنها کد را تمیز و خواناتر میکند، بلکه به بهبود عملکرد نیز کمک میکند.
for index in range(len(xs)):
print("item #{} = {}".format(index + 1, xs[index]))