2 Stimmen

Python-Instanz aus Liste basierend auf Instanzvariable erhalten

Angenommen, Sie haben eine Liste von Instanzen, sagen wir clients. Ich versuche, ein Element aus der Liste anhand des Werts einer einzigen Instanzvariable screenName zu ziehen. Ich weiß, dass ich das tun kann:

for client in clients:
  if client.screenName = search:
    return client

Gibt es jedoch eine elegantere Möglichkeit, dies ohne die Schleife zu tun?

Vielen Dank für Ihre Hilfe :)

0voto

Yasser Punkte 1818

Die beste Diskussion zu diesem Thema befindet sich auf diesem Link

return find(lambda client: client.screenName == search, clients)

Dies erfordert, dass Sie eine generische Find-Funktion definieren, die für alle Arten von Listen wie folgt funktioniert:

def find(f, seq):
  """Gibt das erste Element in der Sequenz zurück, bei dem f(item) == True."""
  for item in seq:
    if f(item): 
      return item

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X