Gunakan Fungsi Enumerate dengan Python untuk Membuat Loop dengan Penghitung

Use Enumerate Function Python Create Loops With Counters



Artikel ini akan menjelaskan penggunaan fungsi enumerate yang tersedia di pustaka modul standar Python. Fungsi enumerate memungkinkan Anda untuk menetapkan indeks atau menghitung ke elemen dalam objek iterable apa pun. Anda kemudian dapat menerapkan logika lebih lanjut pada mereka karena Anda akan memiliki akses ke kedua nilai dan jumlah yang dipetakan ke sana.

Sintaks dan Contoh Dasar

Jika Anda telah menggunakan for loop dalam bahasa pemrograman lain, terutama bahasa C dan bahasa lain yang memiliki sintaks gaya C, Anda mungkin telah menentukan indeks awal dalam loop. Untuk referensi, berikut adalah tampilan for loop dalam bahasa C dan bahasa lain yang memiliki sintaks serupa:







untuk (ke dalamSaya= 0;Saya< 10;Saya++)

{

printf ('%D ',Saya);

}

Pernyataan loop menginisialisasi variabel yang memiliki nilai nol, memeriksa bahwa itu kurang dari ambang batas dan menambahnya dengan satu hitungan setelah mengevaluasi logika di dalam blok loop (jika kondisi berhenti terpenuhi). Dengan cara ini Anda dapat menggunakan indeks dan menetapkannya ke objek apa pun yang direferensikan di blok loop Anda. Sebagai perbandingan, inilah tampilan for loop dengan hasil yang sama di Python:



untukSayadi dalam jangkauan(0, 10):

mencetak (Saya)

Fungsi rentang dalam Python memungkinkan Anda untuk menentukan urutan rentang angka yang memiliki langkah default 1. Anda dapat mengubah nilai langkah dengan memberikan argumen ketiga. Argumen kedua dalam fungsi range digunakan untuk mengatur ambang batas untuk kondisi berhenti. Kedua sampel kode menghasilkan output berikut:



0

1

2

3

4

5

6

7

8

9

Loop ini berfungsi dengan baik jika Anda hanya ingin menghasilkan beberapa urutan angka dan mengaitkannya dengan beberapa logika di dalam pernyataan loop. Namun, Anda mungkin harus menggunakan loop bersarang lain atau menggunakan fungsi hasil pada jenis yang dapat diubah apa pun untuk menetapkan mereka semacam jumlah yang dapat dilacak. Metode enumerate memudahkan untuk menetapkan indeks ke iterables dalam satu pernyataan, sehingga menghilangkan kebutuhan untuk menjalankan beberapa loop bersarang. Lihat contoh kode ini:





angka= ['nol', 'satu', 'dua', 'tiga', 'empat', 'lima']

enumerated_numbers= terdaftar(angka)

untukindeks,barangdi dalamenumerated_numbers:

mencetak (indeks,barang)

Pernyataan pertama mendefinisikan variabel baru yang disebut angka dan memberikan iterable (tipe daftar) untuk itu. Pernyataan kedua menunjukkan penggunaan fungsi enumerate di mana Anda menyediakan iterable sebagai argumen wajib. Pernyataan ketiga mengubah variabel enumerated_numbers menjadi objek tipe daftar. Secara default, fungsi enumerate menghasilkan objek tipe enumerate dan bukan tipe yang dapat diubah, jadi Anda harus mengonversinya. Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:

[(0, 'nol'), (1, 'satu'), (2, 'dua'), (3, 'tiga'), (4, 'empat'), (5, 'lima')]

Fungsi enumerate memberikan hitungan ke setiap elemen dalam tipe yang dapat diubah dan membuat tupel yang memiliki nilai berpasangan. Secara default, hitungan dimulai dari nol.



Sekarang setelah Anda menetapkan nomor untuk setiap elemen dalam tipe yang dapat diubah, Anda dapat dengan mudah mengulanginya tanpa menulis pernyataan bersarang:

angka= ['nol', 'satu', 'dua', 'tiga', 'empat', 'lima']

enumerated_numbers= terdaftar(angka)

untukindeks,barangdi dalamenumerated_numbers:

mencetak (indeks,barang)

Contoh kode yang ditentukan di atas akan menghasilkan output berikut:

0 nol

1 satu

2 dua

3 tiga

4 empat

5 lima

Anda dapat membuat kode lebih pendek dengan menggunakan fungsi enumerate inline, seperti yang ditunjukkan pada contoh di bawah ini:

angka= ['nol', 'satu', 'dua', 'tiga', 'empat', 'lima']

untukindeks,barangdi dalam terdaftar(angka):

mencetak (indeks,barang)

Menggunakan Enumerate dengan Indeks Awal yang Berbeda

Fungsi enumerate mengambil argumen opsional di mana Anda dapat menentukan indeks awal. Secara default adalah nol, tetapi Anda dapat mengubahnya dengan menggunakan argumen start:

angka= ['satu', 'dua', 'tiga', 'empat', 'lima']

untukindeks,barangdi dalam terdaftar(angka,Mulailah=1):

mencetak (indeks,barang)

Dalam pernyataan kedua, argumen start=1 digunakan untuk mengubah titik awal. Setelah menjalankan contoh kode yang ditentukan di atas, Anda akan mendapatkan output berikut:

1 satu

2 dua

3 tiga

4 empat

5 lima

Menetapkan Indeks dengan Langkah

Di bagian pertama artikel ini, sintaks for for loop dalam bahasa C ditampilkan di mana Anda dapat menentukan langkah di antara setiap hitungan atau indeks berikutnya. Fungsi enumerate di Python tidak memiliki argumen seperti itu sehingga Anda tidak dapat menentukan langkah di antara hitungan. Anda memang dapat menulis logika Anda sendiri untuk mengimplementasikan langkah-langkah di dalam blok loop for yang disebutkan. Namun, ada cara untuk menerapkan langkah kustom dengan menulis kode minimal. Contoh berikut menunjukkan implementasi langkah-langkah menggunakan fungsi zip dan range:

angka= ['nol', 'dua', 'empat', 'enam']

untukindeks,barangdi dalam ritsleting(jangkauan(0, 7, 2),angka):

mencetak (indeks,barang)

Fungsi zip memungkinkan Anda membuat pasangan dengan mengambil elemen yang memiliki indeks yang sama dari dua atau lebih iterable. Jadi fungsi zip di sini mengambil elemen dari iterable yang dikembalikan dari fungsi range(0, 7, 2) dan elemen lain dari daftar angka dan kemudian memasangkan keduanya menjadi tupel. Hasil akhirnya adalah implementasi yang identik dengan fungsi enumerate tetapi dengan langkah-langkah khusus yang ditentukan sebagai argumen ketiga dalam fungsi range(0, 7, 2) (2 dalam kasus ini). Setelah menjalankan contoh kode yang ditentukan di atas, Anda akan mendapatkan output berikut:

0 nol

2 dua

4 empat

6 enam

Kesimpulan

Fungsi enumerate di Python memungkinkan Anda untuk menulis kode ringkas dengan menetapkan urutan angka ke elemen dalam objek yang dapat diubah. Ini sangat berguna jika Anda ingin melacak indeks item di dalam tipe yang dapat diubah. Jika Anda ingin menghitung jenis yang dapat diubah dengan langkah khusus, gunakan fungsi zip yang dijelaskan dalam contoh terakhir.