When does Python create new list objects for empty lists?
问题 The following makes sense to me: >>> [] is [] False Given that lists are mutable, I would expect [] to be a new empty list object every time it appears in an expression. Using this explanation however, the following surprises me: id([]) == id([]) True Why? What is the explanation? 回答1: In the first example, [] is not [] precisely because the lists are mutable. If they weren't, they could safely map to the same one without issue. In the second example, id([]) creates a list, gets the id, and