I was quite surprised when
 is not 
a is not b is a special operator which is equivalent to
not a is b.
a is b returns True if a and b are bound to the same object, otherwise False. When you create two empty lists you get two different objects, so
is returns False (and therefore
is not returns True).