Dalam Python, fungsi enumerate() ialah permata misteri yang menambahkan sedikit pencerahan kepada penerokaan boleh lelar anda. Apa sebenarnya yang dilakukannya? Mari kita mendalami konsep dan aplikasinya.
Pada terasnya, enumerate() ialah mencantikkan berulang. Ia memperkenalkan pembilang kepada yang boleh diubah, mengubah setiap elemen menjadi tuple yang mengandungi pembilang dan elemen. Penambahbaikan ini menyediakan cara yang jelas dan ringkas untuk memantau traversal anda melalui yang boleh diubah, menawarkan dimensi berangka untuk pengembaraan gelung anda.
Pertimbangkan contoh mudah ini:
elements = ('foo', 'bar', 'baz') for elem in elements: print(elem)
Kod ini akan mencetak setiap elemen tupel mengikut tertib:
foo bar baz
Walau bagaimanapun, jika kita menggunakan fungsi enumerate(), gelung kami mengambil bentuk baharu:
elements = ('foo', 'bar', 'baz') for count, elem in enumerate(elements): print(count, elem)
Kini, output mendedahkan bukan sahaja elemen itu sendiri tetapi juga pembilang sepadannya:
0 foo 1 bar 2 baz
Perhatikan bagaimana setiap tuple membongkar kepada dua pembolehubah : nombor_baris (pembilang) dan baris (elemen).
Secara lalai, enumerate() memulakan pengiraannya dari 0. Walau bagaimanapun, anda mempunyai kefleksibelan untuk menentukan nombor permulaan dengan menyediakan hujah integer kedua. Contohnya:
for count, elem in enumerate(elements, 42): print(count, elem)
Kod ini akan mencetak:
42 foo 43 bar 44 baz
Fungsi enumerate() semula jadi Python ialah mesin yang ditala dengan baik, tetapi jika anda berasa mencabar, anda boleh -melaksanakannya menggunakan itertools.count() atau penjana pengiraan manual fungsi:
from itertools import count def enumerate(it, start=0): return zip(count(start), it)
atau
def enumerate(it, start=0): count = start for elem in it: yield (count, elem) count += 1
Pelaksanaan tersuai ini mencerminkan pendekatan Python, menyediakan alat serba boleh untuk usaha gelung anda.
Atas ialah kandungan terperinci Bagaimanakah Fungsi `enumerate()` Python Meningkatkan Traversal Boleh Diulang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!