Def funtiontion in range

mylist = [ x * x for x in range (5)]

def fun(lst):
    del lst[lst[2]]
    return lst
    
print(fun(mylist)) 
mylist = [ x * x for x in range (5)]
will retrun 0 , 1, 2, 3, 4 >>>> 0, 1, 4, 9, 16

lst(0) = 1, 4, 9, 16
lst(1) = 0, 4, 9, 16
 please explain how lst(2) = 0, 1, 4 9

mylist = [x * x for x in range (5)]
mylist == [0, 1, 4, 9, 16]
mylist[2] == 4
mylist[4] == 16
mylist[mylist[2]] == 16
del mylist[mylist[2]]  # Same as del mylist[4]
mylist == [0, 1, 4, 9]

Made sense now! Thank you.