خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

تابع enumerate() Python چه کار می کند و چگونه از آن استفاده می کنید؟

با این تابع مفید موقعیت خود را در مجموعه ای از مقادیر تکرارپذیر پیگیری کنید.

پایتون از بسیاری از اشیاء تکرارپذیر پشتیبانی می کند: لیست ها، تاپل ها و رشته ها فقط تعداد کمی هستند. حلقه for پایتون به اندازه کافی منعطف است تا بتواند به راحتی این اشیاء را مدیریت کند. به ویژه، شما را از پرداختن به شاخص عددی هر ورودی نجات می دهد.

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

تکرار بدون enumerate()

لیست پایتون زیر را در نظر بگیرید.

my_fruits = ["apples", "pears", "bananas"]

فرض کنید می خواهید تعداد هر عنصر در لیست را پیگیری کنید. می توانید از یک حلقه for با تابع range() مانند این استفاده کنید.

count = 0
 
for fruit in range(len(my_fruits)):
    print(count, my_fruits[count])
    count += 1

در حالی که این کار می کند، چند کاستی دارد:

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

راه حل بهتری وجود دارد: تابع ()numerate.

نحوه عملکرد ()enumerate در پایتون

تابع ()enumerate پایتون یک مجموعه داده را می گیرد و یک شیء enumerate را برمی گرداند. شئ enumerate شامل یک شمارنده به عنوان کلید برای هر موردی است که شی حاوی آن است. تابع ()enumerate این کار را با اختصاص دادن یک تعداد به هر آیتم انجام می دهد. این شمارش مربوط به تعداد تکرارهایی است که تابع برای رسیدن به آن مقدار تکمیل کرده است.

مطلب مرتبط:   نحوه ایجاد پاور آپ و کلکسیون در Arcade

این شمارنده دسترسی به آیتم های مجموعه را آسان تر می کند یا حتی در صورت امکان مجموعه را تغییر می دهد.

با () enumerate مجبور نیستید طول حلقه یا تعداد تکرار را پیگیری کنید. همچنین می‌توانید از دسترسی صریح به مقدار با استفاده از عملگر شاخص، مانند fruits[count] اجتناب کنید. تابع enumerate به طور خودکار تمام این ویژگی ها را کنترل می کند.

نحو Python enumerate()

در زیر نحو کلی برای تابع ()enumerate آمده است.

enumerate(iterable, start=0)

enumerate() دو آرگومان می گیرد:

  1. تکرارپذیر: مجموعه داده یا دنباله ای که پایتون می تواند آن را تکرار کند. به عنوان مثال. یک لیست یا چند.
  2. start: شاخصی که تابع enumerate باید از آن شروع به شمارش کند.

نحوه پیاده سازی enumerate()

برای درک نحوه عملکرد ()enumerate، بیایید ببینیم که در واقع چگونه پیاده سازی می شود.

def enumerate(sequence, start=0):
    n = start
 
    for elem in sequence:
        yield n, elem
        n += 1

این تابع، که می توانید آن را در مستندات شمارش پایتون بیابید، یک دنباله و یک آرگومان شروع می گیرد که به طور پیش فرض 0 است.

سپس تابع متغیر n را به متغیر start مقداردهی می کند. این تعداد تکرارها را پیگیری می کند.

در حلقه for که برای هر عنصر در دنباله دنبال می شود،

  • yield اجرای حلقه را متوقف می کند.
  • همچنین تعداد فعلی (n) و مقدار (elem) را برمی گرداند.
  • هنگامی که حلقه از سر گرفته می شود، n را افزایش می دهد.

مقدار بازگشتی یک شی از جفت های کلید-مقدار است.

اگر بخواهید تابع ()enumerate را فراخوانی کنید و لیست میوه ها را به آن ارسال کنید، این مقدار خروجی خواهد بود.

my_fruits = ["apples", "pears", "bananas"]
enumerate_object = enumerate(my_fruits)
print(list(enumerate_object))
 
# output - [(0, 'apples'), (1, 'pears'), (2, 'bananas')]

شمارش با یک شاخص شروع متفاوت

در مثال بالا، ما شاخص شروع را مشخص نکردیم. مثال زیر به شما نشان می دهد که چگونه می توانید شاخص شروع را روی تعداد دلخواه خود تنظیم کنید.

مطلب مرتبط:   هر آنچه که برای شروع نوشتن Rust باید بدانید

برای شروع از ساعت 10، موارد زیر را انجام دهید.

enumerate_object = enumerate(my_fruits, 10)
print(list(enumerate_object))
 
# output - [(10, 'apples'), (11, 'pears'), (12, 'bananas')]

مثال های Python enumerate().

در اینجا چند مثال نشان می دهد که چگونه می توانید از ()enumerate در پایتون استفاده کنید.

یک رشته پایتون را برشمارید

در این مثال، از enumerate برای بازیابی حرف شاخص 5 استفاده خواهید کرد:

my_string = "makeuseof"
 
for count, value in enumerate(my_string):
    if count == 5:
        print (value)
 
# output - s

یک تاپل پایتون را برشمارید

همچنین می توانید از enumerate() برای تکرار روی یک تاپل پایتون استفاده کنید. در این مثال، برنامه در اولین تکرار، قبل از نمایش آیتم ها، یک هدر چاپ می کند.

my_fruits_tuple = ("apples", "pears", "bananas")
 
for index, value in enumerate(my_fruits_tuple):
    if (index == 0):
print("Fruits:")
 
    print(value)
 
/*
Fruits:
apples
pears
bananas
*/

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

در مثال زیر، شما از enumerate برای کاهش همه اعداد لیست بالای 10 در 2 استفاده می کنید.

my_number_list = [10, 17, 15, 6]
 
for index, value in enumerate(my_number_list):
    if (value > 10):
        my_number_list[index] -= 2
 
    print(my_number_list)
 
# output - [10, 15, 13, 6]

از enumerate برای شمارش تکرارهای خود استفاده کنید

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

مطلب مرتبط:   نحوه ذخیره داده های React Form در پایگاه داده MongoDB