پایتون، با استفاده از تابع ()enumerate: دریافت عناصر و شاخص های یک لیست

کسب و کار

با استفاده از تابع ()enumerate پایتون، می‌توانید شماره شاخص (شمارش، ترتیب) و همچنین عناصر یک شیء تکرارپذیر مانند لیست یا تاپل را در یک حلقه for دریافت کنید.

این مقاله اصول اولیه تابع ()enumerate را توضیح می دهد.

  • تابعی برای بدست آوردن شاخص در یک حلقه for:enumerate()
    • عادی برای حلقه
    • برای حلقه با استفاده از تابع ()numerate
  • شاخص تابع ()enumerate را از 1 شروع کنید (مقدار غیر صفر)
  • افزایش را مشخص کنید (مرحله)

تابع ()enumerate می تواند برای بدست آوردن شاخص در یک حلقه for استفاده شود.

عادی برای حلقه

l = ['Alice', 'Bob', 'Charlie']

for name in l:
    print(name)
# Alice
# Bob
# Charlie

برای حلقه با استفاده از تابع ()numerate

یک شیء تکرارپذیر مانند لیست را به عنوان آرگومان تابع ()numerate مشخص کنید.

می توانید شماره شاخص و عنصر را به ترتیب دریافت کنید.

for i, name in enumerate(l):
    print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie

شاخص تابع ()enumerate را از 1 شروع کنید (مقدار غیر صفر)

همانطور که در مثال بالا نشان داده شده است، به طور پیش فرض، شاخص تابع ()enumerate از 0 شروع می شود.

اگر می خواهید با عددی غیر از 0 شروع کنید، یک عدد شروع دلخواه را به عنوان آرگومان دوم تابع ()enumerate مشخص کنید.

برای شروع از صفر موارد زیر را انجام دهید.

for i, name in enumerate(l, 1):
    print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie

البته می توانید با اعداد دیگری شروع کنید.

for i, name in enumerate(l, 42):
    print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie

زمانی که می خواهید رشته ای با شماره متوالی ایجاد کنید مفید است. تعیین عدد شروع به عنوان آرگومان دوم تابع ()enumerate هوشمندتر از استفاده از i+1 برای شروع از 1 است.

for i, name in enumerate(l, 1):
    print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie

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

افزایش را مشخص کنید (مرحله)

هیچ آرگومانی برای تعیین مرحله افزایشی در تابع ()enumerate وجود ندارد، اما با انجام موارد زیر می توان به آن دست یافت.

step = 3
for i, name in enumerate(l):
    print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie