Comparaison de listes avec l'opérateur Supérieur ou Inférieur à : des surprises dans l'ordre lexicographique
Lorsque vous rencontrez du code, comparez directement des listes en utilisant l'opérateur supérieur ou inférieur than (> et <), vous pouvez supposer que de telles comparaisons renvoient True si tous les éléments de la première liste sont supérieurs à ceux de la deuxième liste, et False dans le cas contraire. Cependant, les tests révèlent des résultats inattendus.
Pour percer ce mystère, nous nous tournons vers la documentation de Python sur la comparaison des séquences et d'autres types. Il indique que de telles comparaisons suivent un ordre lexicographique et non des comparaisons élément par élément :
Considérons l'exemple suivant :
a = [3, 3, 3, 3] b = [4, 4, 4, 4]
Étant donné que les premiers éléments (3 et 4) diffèrent, b est considéré comme supérieur à a. Cela correspond à notre hypothèse selon laquelle tous les éléments de b sont plus grands que ceux de a.
Cependant, le cas suivant illustre plus clairement la règle d'ordre lexicographique :
a = [1, 1, 3, 1] b = [1, 3, 1, 1]
Depuis les premiers éléments ( 1) sont égaux, la comparaison passe aux éléments suivants. Dans ce cas, le deuxième élément de a (1) est inférieur au deuxième élément de b (3). Par conséquent, malgré le fait que a a plus d'éléments supérieurs à 1 que b, b est considéré comme supérieur à a.
En résumé, lors de la comparaison de listes utilisant l'opérateur supérieur ou inférieur à, Python utilise un ordre lexicographique, plutôt que des comparaisons élément par élément. Cela peut conduire à des résultats inattendus, surtout lorsque les listes contiennent des éléments de valeurs différentes.
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!