Sebagai alternatif, Anda dapat menggunakan fungsi range()_ untuk mendapatkan daftar semua indeks yang valid dan kemudian mencocokkan nilai terkait yang ada di setiap indeks dengan item yang diberikan
1
2
3
4
5
6
7
8
9
10
jika __nama__ == '__main__'.
ints = [1, 3, 7, 5, 4, 3]
barang = 3
indeks = [i for i in range(len(ints)) if ints[i] == item]
cetak(f"Item {item} adalah)
# Keluaran. Butir 3 ditemukan di indeks [1, 5]
Unduh Jalankan Kode
3. Menggunakan modul itertools_
Pendekatan lain adalah dengan menggunakan fungsi count()_ di itertools, yang membuat iterator untuk perulangan yang efisien untuk mengembalikan nilai dengan jarak yang sama dimulai dengan angka yang diberikan. Anda dapat menggunakannya dengan fungsi zip()_ untuk menambahkan nomor urut dengan cara berikut
1
2
3
4
5
6
7
8
9
10
11
12
dari itertools impor hitung
jika __nama__ == '__main__'.
ints = [1, 3, 7, 5, 4, 3]
barang = 3
dizip = [(i, j) for i, j in zip(count(), ints) if j == item]
cetak(di-zip)
# [(1, 3), (5, 3)]
Unduh Jalankan Kode
4. Menggunakan modul more_itertools_
Library more-itertools menyediakan rutin yang elegan untuk bekerja dengan iterables Python. Anda dapat menggunakan fungsi yang menghasilkan indeks setiap item dalam iterable yang memenuhi predikat yang diberikan. Berikut adalah contoh sederhana yang menunjukkan penggunaan fungsi ini.
1
2
3
4
5
6
7
8
9
10
11
12
dari more_itertools impor temukan
jika __nama__ == '__main__'.
ints = [1, 3, 7, 5, 4, 3]
barang = 3
indeks = daftar(locate(ints, lambda x: x == barang))
cetak(f"Item {item} adalah)
# Keluaran. Butir 3 ditemukan di indeks [1, 5]
Unduh Kode
5. Menggunakan Perpustakaan NumPy
Terakhir, jika Anda sudah menggunakan NumPy dan membutuhkan semua indeks, Anda dapat menggunakan fungsi range()1