Différence entre == et est en python

Il existe deux façons de savoir si elles sont identiques en python. == et est. Les valeurs de retour sont toutes booléennes, mais quelle est la différence? C'est quelque chose qui m'intéresse.

Conclusion

En termes simples, il compare l'emplacement mémoire des deux, tandis que == cherche simplement à voir s'ils ont la même valeur. C'est tout.

Par exemple?

Jetons un œil au code (lancez python3 dans le terminal)

>>> a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

Je vais expliquer. Si vous attribuez également une liste à a et a à b, vous pouvez voir qu'ils citent à partir du même emplacement de mémoire. Par conséquent, c'est vrai avec est. Utilisez ensuite l'opération de chaîne [:] pour dupliquer la liste. Ensuite, la copie sera terminée, et ce sera différent en mémoire. Par conséquent, c'est faux. à propos de ça.

Quand tu regardes réellement l'ID

>>> id(a)
4364243328
>>> 
>>> id(b)
4364202696

C'est vrai. Puisqu'il est faux, il est naturel que l'identifiant soit différent.

Cependant, il existe des exceptions comme le code ci-dessous.

>>> a = 256
>>> b = 256
>>> a is b
True
>>> a == b
True
>>>
>>> a = 1000
>>> b = 10**3
>>> a == b
True
>>> a is b
False

Qu'est-ce que ça veut dire? Bien que les numéros a et b soient attribués séparément, les résultats sont différents entre le haut et le bas. Eh bien, je vais vous expliquer. python fait différentes choses pour les petits entiers tels que 256 pour améliorer les performances. Il semble que ces entiers spéciaux soient stockés au même endroit avec le même identifiant. Ensuite, en 256, ce sera le même True indépendamment du fait que vous utilisiez is ou ==, et pas pour les grands nombres tels que 1000.

C'était ça. Qu'est-ce que tu penses. Si vous avez des suggestions, veuillez le faire.

à la prochaine

Recommended Posts

Différence entre == et est en python
À propos de la différence entre "==" et "is" en python
Différence entre list () et [] en Python
différence entre les instructions (instructions) et les expressions (expressions) en Python
Différence entre @classmethod et @staticmethod en Python
Différence entre append et + = dans la liste Python
Différence entre non local et global en Python
[python] Différence entre variable et self. Variable dans la classe
Différence entre Ruby et Python Split
Différence entre java et python (mémo)
Différence entre Ruby et Python en termes de variables
Différence entre la série python2 et la série python3 dict.keys ()
Différence entre return, return None et no return description en Python
[Python] Différence entre fonction et méthode
Python - Différence entre exec et eval
[Python] Différence entre randrange () et randint ()
[Python] Différence entre trié et trié (Colaboratoire)
Module Python num2words Différence de comportement entre l'anglais et le russe
Méthode de concaténation de liste en python, différence entre list.extend () et opérateur «+»
Différence d'authenticité entre Python et JavaScript
Différences entre Ruby et Python dans la portée
Différences entre la syntaxe Python et Java
Différences dans la relation entre PHP et Python enfin et quitter
[Python] Différence entre la méthode de classe et la méthode statique
[Python Iroha] Différence entre List et Tuple
[python] Différence entre la sortie rand et randn
Différences de multithreading entre Python et Jython
Comment utiliser is et == en Python
Fonction pour ouvrir un fichier en Python3 (différence entre open et codecs.open et comparaison de vitesse)
Quelle est la différence entre «pip» et «conda»?
Qu'est-ce que la «programmation fonctionnelle» et «orientée objet»? Édition Python
La réponse de "1/2" est différente entre python2 et 3
Quelle est la différence entre Unix et Linux?
[Introduction à Python] Quelle est la différence entre une liste et un taple?
Différence entre processus et travail
Différence entre "categorical_crossentropy" et "sparse_categorical_crossentropy"
Trouver des erreurs en Python
Différence entre régression et classification
[Python] Python et sécurité-① Qu'est-ce que Python?
Pile et file d'attente en Python
Différence entre np.array et np.arange
Différence entre MicroPython et CPython
Unittest et CI en Python
Identité et équivalence: is et == en Python
Différence entre ps a et ps -a
Différence entre return et print-Python
Quelle est la différence entre usleep, nanosleep et clock_nanosleep?
Le comportement de retrait de json.dumps est différent entre python2 et python3
[python] Calcul des mois et des années de différence de date / heure
Conversion mutuelle entre JSON et YAML / TOML en Python
Comparez la "relation log et infini" avec Gauche (0.9.4) et Python (3.5.1)
Différences dans la façon d'écrire du code source externe entre Ruby et Python
Quelle est la différence entre les liens symboliques et les liens durs?
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre SQLAlchemy filter () et filter_by ()
Afficher les photos en Python et html
Utilisez le tissu tel quel en python (fabric3)
Algorithme de tri et implémentation en Python
Python> Différence entre la sortie inpbt et print (inpbt)> [1. 2. 3.] / array ([1., 2., 3.], dtype = float32)