I was solving a problem when I accidentally found this weird feature in python:
list1 = [1]
list1.append(list1)
print(list1[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][0])
You can append a list to itself. This code prints 1.
list1 = []
list1.append(list1)
print(list1[0][0][0][0][0][0])
This will print [[...]]
. I guess it prints this to show that the list tunnels on forever.
It makes sense but it still seems like an odd feature. I can't see how this would be useful.
Wow, Today I learnt a new thing.
My guess it that when you append the list to itself , it appends a pointer to the list rather than the list itself , because of which the list has a element which points to itself , it is like a circular linked list i guess XD
.
You can accomplish something a bit similar in C++
Bonus: this creates memory leak without any manual call to new/malloc.
.