Heim  >  Artikel  >  Backend-Entwicklung  >  Rufen Sie in Python den Index eines Objekts in einer Liste über ein Attribut ab

Rufen Sie in Python den Index eines Objekts in einer Liste über ein Attribut ab

WBOY
WBOYnach vorne
2023-08-25 16:13:121430Durchsuche

Rufen Sie in Python den Index eines Objekts in einer Liste über ein Attribut ab

List ist eine gängige Datenstruktur, die in Python zum Speichern von Objektsammlungen verwendet wird. Manchmal müssen Sie möglicherweise den Wert eines bestimmten Merkmals verwenden, um den Index eines bestimmten Elements in einer Liste zu finden. Dies kann ein schwieriger Prozess sein, insbesondere wenn die Liste viele Dinge enthält, aber Python bietet eine einfache Möglichkeit, den Index in einer Liste von Objekten nach Attributen abzurufen, die wir in diesem Artikel untersuchen werden.

Grammatik

Um einen Index in einer Liste von Objekten basierend auf einer Eigenschaft zu finden, verwenden Sie die unten gezeigte Syntax -

index = next((i for i, obj in enumerate(my_list) if obj.attribute == desired_value), None)
Die

next()-Methode stellt den Anfangsindex des Objekts in der Liste bereit, das dem gewünschten Eigenschaftswert entspricht, und wird in diesem Code verwendet, um das nächste Element im Generatorausdruck abzurufen. Wenn kein Objekt vorhanden ist, das dem angegebenen Eigenschaftswert entspricht, wird der Wert None zurückgegeben.

Algorithmus

  • Mit einem Generatorausdruck können Sie jedes Element in einer Liste durchlaufen.

  • Überprüfen Sie, ob der Eigenschaftswert des aktuellen Objekts mit dem erwarteten Wert übereinstimmt.

  • Wenn der Attributwert die Anforderungen erfüllt, wird der Index des aktuellen Objekts zurückgegeben.

  • Wenn kein Objekt vorhanden ist, das dem angegebenen Attributwert entspricht, wird None zurückgegeben.

Beispiel

Stellen Sie sich eine Situation vor, in der das Problem darin besteht, Dateien aus einer Liste von Worker-Objekten zu finden, die ein Projekt mit einem bestimmten Namensattribut darstellen.

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)

Ausgabe

1

In diesem Beispiel definieren wir eine Mitarbeiterklasse mit Namens-, Alters- und Gehaltseigenschaften. Dann erstellen wir eine Liste von Employee-Objekten mit dem Namen „employees“. Wir möchten den Index des Employee-Objekts mit dem Namen „Alice“ finden. Wir verwenden die Funktion next() mit einem Generatorausdruck, um jedes Objekt in der Mitarbeiterliste zu durchlaufen und zu prüfen, ob das Namensattribut mit dem erforderlichen Wert übereinstimmt. Wenn ein passendes Objekt gefunden wird, wird der Index zurückgegeben. Wenn kein Objekt mit dem erforderlichen Eigenschaftswert übereinstimmt, wird None zurückgegeben. In diesem Beispiel ist die Ausgabe 1, da sich das Mitarbeiterobjekt mit dem Namen „Alice“ an Index 1 in der Liste der Mitarbeiter befindet.

Apps

In vielen Situationen ist es erforderlich, über eine Eigenschaft einen Index in eine Liste von Objekten zu erhalten. Wenn Sie beispielsweise über eine Liste von Objekten verfügen, die Artikel darstellen, und Sie den Index eines Produkts mit einem bestimmten ID-Attribut suchen möchten. Wenn Sie über eine Liste von Objekten verfügen, die Kunden darstellen, möchten Sie möglicherweise auch einen Index von Kunden mit einem bestimmten E-Mail-Attribut finden. Es gibt viele Anwendungen für diese Funktionalität, von der Weberstellung bis zur Datenanalyse.

Fazit

Zusammenfassend lässt sich sagen, dass das Abrufen des Index in einer Liste von Objekten nach Attribut eine häufige Aufgabe in der Python-Programmierung ist. Durch die Verwendung der next()-Methode in Verbindung mit einem Generatorausdruck können wir schnell den Index eines Elements in einer Liste basierend auf einem Eigenschaftswert ermitteln. Für diese Funktion gibt es Anwendungen, die von der Webentwicklung bis zur Datenanalyse reichen.

Das obige ist der detaillierte Inhalt vonRufen Sie in Python den Index eines Objekts in einer Liste über ein Attribut ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen