Maison > interface Web > tutoriel CSS > le corps du texte

Décrire en détail les astuces et les pièges liés à l'utilisation des sélecteurs

WBOY
Libérer: 2023-09-09 09:43:46
original
841 Les gens l'ont consulté

Décrire en détail les astuces et les pièges liés à lutilisation des sélecteurs

Expliquez les astuces et les pièges de l'utilisation des sélecteurs is et où

En tant que sélecteurs couramment utilisés, is et où sont souvent rencontrés lors de l'écriture de code. Leurs fonctions sont similaires et ils sont tous deux utilisés pour filtrer les données, mais il existe certaines techniques et pièges auxquels il faut prêter attention lors de leur utilisation.

Tout d’abord, jetons un coup d’œil à l’utilisation du sélecteur is. La fonction du sélecteur is est de sélectionner des éléments avec des valeurs d'attribut spécifiques de l'objet.

L'exemple de code est le suivant :

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)
Copier après la connexion

Résultat d'exécution :

[{'name': 'John', 'age': 25}]
Copier après la connexion
Copier après la connexion

Dans l'exemple, nous utilisons le sélecteur is pour filtrer les informations de la personne nommée John dans les données. Grâce à la compréhension de listes, nous pouvons filtrer rapidement les éléments qui remplissent les conditions.

Cependant, il y a un problème à noter lors de l'utilisation du sélecteur is : le sélecteur is compare les références, pas les valeurs. Si nous modifions légèrement l'exemple de code comme suit :

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)
Copier après la connexion

Résultats d'exécution :

[{'name': 'John', 'age': 25}, {'name': 'John', 'age': 27}]
Copier après la connexion

Vous pouvez voir que bien que notre condition de filtrage concerne les personnes nommées John, les résultats filtrés incluent en fait deux personnes nommées John people. En effet, le sélecteur compare les adresses mémoire, pas les valeurs.

Pour éviter ce problème, nous pouvons utiliser le sélecteur Where. Le sélecteur Where compare les valeurs et est plus flexible.

L'exemple de code est le suivant :

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)
Copier après la connexion

Résultats d'exploitation :

[{'name': 'John', 'age': 25}]
Copier après la connexion
Copier après la connexion

Dans l'exemple, nous utilisons le sélecteur Where pour comparer les valeurs des éléments via la fonction Operator.eq afin de filtrer les informations sur les personnes nommées John. Seul le premier élément qui satisfait à la condition est inclus dans le résultat.

Lorsque vous utilisez le sélecteur Where, veuillez noter que vous devez importer le module opérateur et utiliser les fonctions du module pour effectuer des opérations de comparaison. De cette façon, nous pouvons comparer avec précision les valeurs des éléments et éviter les pièges du sélecteur is.

En programmation réelle, il est très important de choisir le sélecteur approprié en fonction des besoins réels. Si vous devez comparer des valeurs, vous devez utiliser le sélecteur Where ; si vous devez comparer des références, vous pouvez utiliser le sélecteur is.

Pour résumer, les sélecteurs sont-ils et où sont-ils couramment utilisés pour filtrer les données. Lors de l'utilisation, veuillez noter que le sélecteur is compare les références, tandis que le sélecteur Where compare les valeurs. Choisissez le sélecteur approprié en fonction des besoins réels, faites attention aux techniques d'utilisation et évitez les pièges, afin de mieux écrire du code de haute qualité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!