Heim  >  Artikel  >  Web-Frontend  >  Beschreiben Sie ausführlich die Tipps und Fallstricke bei der Verwendung von Is- und Where-Selektoren

Beschreiben Sie ausführlich die Tipps und Fallstricke bei der Verwendung von Is- und Where-Selektoren

WBOY
WBOYOriginal
2023-09-09 09:43:46828Durchsuche

Beschreiben Sie ausführlich die Tipps und Fallstricke bei der Verwendung von Is- und Where-Selektoren

Erläutern Sie die Tipps und Fallstricke bei der Verwendung von Is- und Where-Selektoren.

Is- und Where-Selektoren werden beim Schreiben von Code häufig als häufig verwendete Selektoren angetroffen. Ihre Funktionen sind ähnlich und sie werden beide zum Filtern von Daten verwendet, es gibt jedoch einige Techniken und Fallstricke, die bei der Verwendung beachtet werden müssen.

Werfen wir zunächst einen Blick auf die Verwendung des is-Selektors. Die Funktion des is-Selektors besteht darin, Elemente mit bestimmten Attributwerten aus dem Objekt auszuwählen.

Der Beispielcode lautet wie folgt:

data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'Tom', 'age':27}]
result = [person for person in data if person['name'] == 'John']

print(result)

Laufendes Ergebnis:

[{'name': 'John', 'age': 25}]

Im Beispiel verwenden wir den is-Selektor, um die Informationen der Person namens John in den Daten herauszufiltern. Mithilfe des Listenverständnisses können wir schnell die Elemente herausfiltern, die die Bedingungen erfüllen.

Bei der Verwendung des is-Selektors ist jedoch ein Problem zu beachten: Der is-Selektor vergleicht Referenzen, keine Werte. Wenn wir den Beispielcode wie folgt leicht modifizieren:

data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'John', 'age':27}]
result = [person for person in data if person['name'] == 'John']

print(result)

Laufergebnisse:

[{'name': 'John', 'age': 25}, {'name': 'John', 'age': 27}]

Sie können sehen, dass unsere Filterbedingung zwar Personen mit dem Namen John umfasst, die gefilterten Ergebnisse jedoch tatsächlich zwei Personen mit dem Namen John umfassen. Dies liegt daran, dass der is-Selektor Speicheradressen vergleicht, nicht Werte.

Um dieses Problem zu vermeiden, können wir den Where-Selektor verwenden. Der Where-Selektor vergleicht Werte und ist flexibler.

Der Beispielcode lautet wie folgt:

import operator

data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'John', 'age':27}]
result = [person for person in data if operator.eq(person['name'], 'John')]

print(result)

Betriebsergebnisse:

[{'name': 'John', 'age': 25}]

Im Beispiel verwenden wir den Where-Selektor, um die Werte von Elementen über die Funktion „operator.eq“ zu vergleichen und Informationen über Personen namens John herauszufiltern. Nur das erste Element, das die Bedingung erfüllt, wird in das Ergebnis einbezogen.

Bitte beachten Sie bei Verwendung des Where-Selektors, dass Sie das Operatormodul importieren und die Funktionen im Modul verwenden müssen, um Vergleichsoperationen durchzuführen. Auf diese Weise können wir die Werte von Elementen genau vergleichen und die Fallstricke des is-Selektors vermeiden.

Bei der eigentlichen Programmierung ist es sehr wichtig, den geeigneten Selektor entsprechend den tatsächlichen Anforderungen auszuwählen. Wenn Sie Werte vergleichen müssen, sollten Sie den Selektor „Where“ verwenden. Wenn Sie Referenzen vergleichen müssen, können Sie den Selektor „Is“ verwenden.

Zusammenfassend lässt sich sagen, dass und wo Selektoren häufig zum Filtern von Daten verwendet werden. Bitte beachten Sie bei der Verwendung, dass der is-Selektor Referenzen vergleicht, während der where-Selektor Werte vergleicht. Wählen Sie den geeigneten Selektor entsprechend den tatsächlichen Anforderungen aus, achten Sie auf die Verwendungstechnik und vermeiden Sie Fallstricke, damit Sie qualitativ hochwertigen Code besser schreiben können.

Das obige ist der detaillierte Inhalt vonBeschreiben Sie ausführlich die Tipps und Fallstricke bei der Verwendung von Is- und Where-Selektoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn