Asignación de memoria de Python:
1. Para int, str, float type siempre que el valor sea el mismo, la dirección de memoria sea la misma
P.ej:
a1 = 2.0 id(a1) = 141300656
b = 2.0 id(b) = 141300656
2. Para datos de tipo list, dict, set, tuple, aunque el valor es el mismo, la dirección de memoria es diferente con diferentes nombres
P.ej:
list1 =[1,2,2] id(list1) = 141357784
list2 = [1,2,2] id(list2) = 141
La diferencia entre is y == es que no solo tiene el mismo valor, sino que también la dirección de memoria debe ser la misma, y == siempre que el valor sea el mismo.