def mystery(l): l = l[0:5] #<-problem here return() list1 = [44,71,12,8,23,17,16] mystery(list1)
Когда я печатаю list1, ответ - [44,71,12,8,17,16]. Почему list1 не обновляется в строке l = l [0: 5], так как списки изменчивы?
l - локальная переменная; присвоение имени никогда не изменяет объект, на который оно ссылалось. Если вы хотите обрезать список, на который ссылается l, вам нужно использовать что-то вроде
l
l[:] = l[0:5] # Replace the contents of the list with just the first 5
или более просто
del l[5:] # Remove all but the first 5 elements