I think the output you are seeing becomes more clear if you add another element to the list. You have:
>>> x = []
>>> x.append(x)
>>> x
[[...]]
If we append another value to x
:
>>> x.append(1)
Then we have:
>>> x
[[...], 1]
Here, [...]
is just Python's way of representing the fact that the list is embedded in itself.
And of course:
>>> x[0]
[[...], 1]
>>> x[0][0][0]
[[...], 1]
>>>