Для меня имеет смысл следующее:
>>> [] is []
False
Учитывая, что списки изменяемы, я ожидаю, что []
будет новым пустым объектом списка каждый раз, когда он появляется в выражении. Однако, используя это объяснение, меня удивляет следующее:
id([]) == id([])
True
Почему? Каково объяснение?
id([]) == id([])
не являетсяTrue
на всех разновидностях питона. (да, проверено.) cPython имеет тенденцию перераспределять память таким образом, это деталь реализации. - person roippi   schedule 22.02.2014a = []; b = []; id(a) == id(b) # This is False
- person Silas Ray   schedule 22.02.2014