Python, Menggunakan fungsi enumerate(): Mendapatkan elemen dan indeks senarai

Perniagaan

Menggunakan fungsi enumerate() Python, anda boleh mendapatkan nombor indeks (kiraan, susunan) serta unsur-unsur objek boleh lelaran seperti senarai atau tuple dalam gelung for.

Artikel ini menerangkan asas fungsi enumerate().

  • Berfungsi untuk mendapatkan indeks dalam gelung for:enumerate()
    • Biasa untuk gelung
    • Untuk gelung menggunakan fungsi enumerate().
  • Mulakan indeks fungsi enumerate() pada 1 (nilai bukan sifar)
  • Nyatakan kenaikan (langkah)

Fungsi enumerate() boleh digunakan untuk mendapatkan indeks dalam gelung for.

Biasa untuk gelung

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

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

Untuk gelung menggunakan fungsi enumerate().

Tentukan objek boleh lelaran seperti senarai sebagai hujah bagi fungsi enumerate().

Anda boleh mendapatkan nombor indeks dan elemen dalam susunan itu.

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

Mulakan indeks fungsi enumerate() pada 1 (nilai bukan sifar)

Seperti yang ditunjukkan dalam contoh di atas, secara lalai, indeks fungsi enumerate() bermula dari 0.

Jika anda ingin bermula dengan nombor selain daripada 0, tentukan nombor permulaan arbitrari sebagai argumen kedua bagi fungsi enumerate().

Untuk bermula dari awal, lakukan perkara berikut.

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

Sudah tentu, anda boleh mulakan dengan nombor lain.

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

Berguna apabila anda ingin mencipta rentetan bernombor berurutan; adalah lebih bijak untuk menentukan nombor permulaan sebagai hujah kedua bagi fungsi enumerate() daripada menggunakan ‘i+1’ untuk bermula dari 1.

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

Lihat artikel berikut untuk mendapatkan maklumat lanjut tentang fungsi format, yang digunakan untuk mengisi nombor dengan sifar.

Nyatakan kenaikan (langkah)

Tiada hujah untuk menentukan langkah tambahan dalam fungsi enumerate(), tetapi ia boleh dicapai dengan melakukan perkara berikut

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