Mendapatkan Indeks Nilai Maks/Min Dikembalikan oleh max()/min() pada Senarai
Apabila menggunakan max() Python dan min() berfungsi pada senarai untuk algoritma seperti minimax, menentukan indeks nilai maksimum atau minimum yang dikembalikan selalunya diperlukan.
Masalah:
Anda perlu mencari indeks elemen dalam senarai yang sepadan dengan nilai max() atau min() yang dikembalikan, untuk mengenal pasti pergerakan yang menghasilkan nilai tersebut.
Penyelesaian:
Kepada dapatkan semula indeks nilai min(), gunakan kod berikut:
<code class="python">index_min = min(range(len(values)), key=values.__getitem__)</code>
Kaedah ini menghapuskan keperluan untuk modul seperti operator atau enumerate, dan ia juga mengatasi penyelesaian yang melibatkan itemgetter().
Untuk tatasusunan numpy, pertimbangkan untuk menggunakan:
<code class="python">import numpy as np index_min = np.argmin(values)</code>
Ini lebih pantas jika senarainya cukup besar dan penggunaan memori boleh diterima.
Tanda Aras:
Tanda aras di bawah membandingkan kecekapan dua penyelesaian yang dicadangkan:
[Imej menunjukkan graf dengan masa jalan untuk kaedah yang berbeza]
Garis biru mewakili penyelesaian Python tulen, manakala garis merah menggunakan numpy. Garis hitam ialah pelaksanaan rujukan menggunakan itemgetter().
Untuk senarai besar, penyelesaian numpy adalah lebih pantas. Walau bagaimanapun, untuk senarai yang lebih kecil, penyelesaian Python tulen mungkin lebih cekap.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Indeks Nilai Maks/Min dalam Senarai Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!