Почему значение списка, передаваемого в функцию, не обновляется? - PullRequest
0 голосов
/ 10 февраля 2020
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], так как списки изменчивы?

1 Ответ

3 голосов
/ 10 февраля 2020

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...