Comparing two variables with 'is' operator which are declared in one line in Python
--------------------------------------------------
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: The Builders
--
Chapters
00:00 Comparing Two Variables With 'Is' Operator Which Are Declared In One Line In Python
01:09 Accepted Answer Score 5
01:47 Thank you
--
Full question
https://stackoverflow.com/questions/3226...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #python27
#avk47
    Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: The Builders
--
Chapters
00:00 Comparing Two Variables With 'Is' Operator Which Are Declared In One Line In Python
01:09 Accepted Answer Score 5
01:47 Thank you
--
Full question
https://stackoverflow.com/questions/3226...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #python27
#avk47
ACCEPTED ANSWER
Score 5
This is not an unexpected behavior, according to Python Data model it's an implementation detail:
Types affect almost all aspects of object behavior. Even the importance of object identity is affected in some sense: for immutable types, operations that compute new values may actually return a reference to any existing object with the same type and value, while for mutable objects this is not allowed. E.g., after a = 1; b = 1, a and b may or may not refer to the same object with the value one, depending on the implementation, but after c = []; d = [], c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d.)