Dalam Python, memilih elemen tertentu daripada senarai berdasarkan indeksnya boleh menjadi keperluan biasa. Soalan yang dikemukakan baru-baru ini menangani senario ini, membentangkan senarai integer a dan senarai indeks b. Matlamatnya adalah untuk mencipta senarai c baharu yang mengandungi unsur-unsur yang sepadan dengan indeks dalam b.
Penyelesaian yang disediakan menggunakan pemahaman senarai yang berulang ke atas indeks dalam b dan memilih elemen yang sesuai daripada a:
a = [-2, 1, 5, 3, 8, 5, 6] b = [1, 2, 5] c = [a[i] for i in b]
Walaupun pendekatan ini benar-benar sah, persoalan timbul sama ada wujud kaedah yang lebih cekap untuk mencapai matlamat yang diingini. hasil.
Operator.itemgetter
Satu penyelesaian alternatif melibatkan penggunaan fungsi operator.itemgetter daripada modul operator Python:
from operator import itemgetter a = [-2, 1, 5, 3, 8, 5, 6] b = [1, 2, 5] print(itemgetter(*b)(a))
Pengindeksan Numpy Array
Untuk kes di mana prestasi adalah kritikal, NumPy menawarkan keupayaan pengendalian tatasusunan yang dioptimumkan:
import numpy as np a = np.array([-2, 1, 5, 3, 8, 5, 6]) b = [1, 2, 5] print(list(a[b]))
Penilaian Penyelesaian
Terutamanya, penyelesaian asal menggunakan pemahaman senarai kekal sebagai pilihan yang berdaya maju. Ia ringkas dan mudah difahami. Kaedah itemgetter dan NumPy, sambil menawarkan potensi manfaat prestasi, mungkin berlebihan untuk senarai yang lebih kecil atau situasi di mana kelajuan kurang membimbangkan.
Akhirnya, pilihan kaedah untuk digunakan bergantung pada faktor seperti saiz senarai dan keperluan prestasi khusus aplikasi.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mengakses Pelbagai Elemen Senarai dengan Indeks dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!