листы это мютабл, мютаблы только 1 в памяти. Почему когда я arr=arr[0:original_arr_lenght] внешний arr в принте не меняется????
потому что ты присвоил локальной переменной новый объект
но arr это типо поинтер в C, его если менять то внешне тоже должно меняться же
а слайс делает новый арр по-моему
но ты его не меняешь. ты ему присвоил новое значение
Как тогда быть? В задании говорят Do the above modifications to the input array in place, do not return anything from your function.
del arr[original_arr_lenght+1:]
так ты заменил поинтер, а не объект по поинтеру
это же только удалит, но как тогда вставить новые данные в лист?
arr=arr[0:original_arr_lenght] так и это тоже только "удалит"
походу такое невозможно сделать? только если фором изменять и обрезать лишнее?
а что сделать то?
без создания нового листа заменить arr
что значит заменить?
arr[:] = new_arr
тебе уже сказали как удалить кусок
работает, надо теперь понять почему
Обсуждают сегодня