Senarai ialah struktur data biasa yang digunakan dalam Python untuk menyimpan koleksi objek. Kadangkala anda mungkin perlu menggunakan nilai ciri khusus untuk mencari indeks item tertentu dalam senarai. Ini boleh menjadi proses yang sukar, terutamanya jika senarai mempunyai banyak perkara, tetapi Python mempunyai cara mudah untuk mendapatkan indeks dalam senarai objek mengikut atribut, yang akan kita terokai dalam artikel ini.
Untuk mencari indeks dalam senarai objek berdasarkan sifat, gunakan sintaks yang ditunjukkan di bawah -
index = next((i for i, obj in enumerate(my_list) if obj.attribute == desired_value), None)
next() menyediakan indeks awal objek dalam senarai yang sepadan dengan nilai sifat yang diingini dan digunakan dalam kod ini untuk mendapatkan semula item seterusnya dalam ungkapan penjana. Jika tiada objek yang sepadan dengan nilai harta yang ditentukan, nilai Tiada dikembalikan.
Anda boleh mengulangi setiap item dalam senarai menggunakan ungkapan penjana.
Sahkan bahawa nilai sifat objek semasa sepadan dengan nilai yang dijangkakan.
Jika nilai atribut memenuhi keperluan, kembalikan indeks objek semasa.
Jika tiada objek yang sepadan dengan nilai atribut yang ditentukan, Tiada akan dikembalikan.
Pertimbangkan situasi di mana masalahnya adalah untuk mencari fail daripada senarai objek Pekerja yang mewakili projek dengan atribut nama tertentu.
class Employee: def __init__(self, name, age, salary): self.name = name self.age = age self.salary = salary employees = [ Employee("John", 30, 50000), Employee("Alice", 25, 45000), Employee("Bob", 35, 55000) ] index = next((i for i, obj in enumerate(employees) if obj.name == "Alice"), None) print(index)
1
Dalam contoh ini, kami mentakrifkan kelas Pekerja dengan nama, umur dan harta gaji. Kemudian kami membuat senarai objek Pekerja bernama "pekerja". Kami ingin mencari indeks objek Pekerja bernama "Alice". Kami menggunakan fungsi next() dengan ungkapan penjana untuk mengulangi setiap objek dalam senarai pekerja dan menyemak sama ada atribut nama sepadan dengan nilai yang diperlukan. Jika objek yang sepadan ditemui, indeks dikembalikan. Jika tiada objek sepadan dengan nilai harta yang diperlukan, Tiada dikembalikan. Dalam contoh ini, output ialah 1 kerana objek Pekerja bernama "Alice" terletak pada indeks 1 dalam senarai pekerja.
Banyak situasi memerlukan anda boleh memasukkan indeks ke dalam senarai objek melalui hartanah. Contohnya, jika anda mempunyai senarai objek yang mewakili item dan anda ingin mencari indeks produk dengan atribut ID tertentu. Jika anda mempunyai senarai objek yang mewakili pelanggan, anda juga mungkin ingin mencari indeks pelanggan dengan atribut e-mel tertentu. Terdapat banyak aplikasi untuk fungsi ini, daripada penciptaan web kepada analisis data.
Untuk meringkaskan, mendapatkan indeks dalam senarai objek mengikut atribut ialah tugas biasa dalam pengaturcaraan Python. Dengan menggunakan kaedah next() bersama-sama dengan ungkapan penjana, kita boleh dengan cepat menentukan indeks item dalam senarai berdasarkan nilai harta tertentu. Ciri ini mempunyai aplikasi dari pembangunan web hingga analisis data.
Atas ialah kandungan terperinci Dalam Python, dapatkan indeks objek dalam senarai melalui atribut. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!