Переменные в python не хранят объекты, а ссылаются на них.
lst[:] = [1, lst, 7, lst]
Ты просто переопределяешь lst, то есть в списке у тебя ссылка на этот самый объект.
UPD.
lst = [1, 2, 3, 4, 5]
Сначала создаётся объект 
[1, 2, 3, 4, 5], после чего он присваивается (считай привязывается) к переменной 
lst. То есть на данный момент у тебя есть переменная 
lst которая ссылается на объект списка.
lst[:] = [1, lst, 7, lst]
Тут ты создаешь новый объект списка 
[1, lst, 7, lst], в котором помимо объектов 
int есть еще и ссылки 
lst, то есть не объекты, на которые ссылается эта переменная, а именно сама переменная, то есть ссылка. После чего ты переопределяешь переменную 
lst, в том числе внутри списка. 
Для понимания:
In [1]: a = [1, 2, 3]
In [2]: b = a
In [3]: b.append(4)
In [4]: b
Out[4]: [1, 2, 3, 4]
In [5]: a
Out[5]: [1, 2, 3, 4]