@DVoropaev
Ставлю + к карме на хабре за ответы на вопросы

Как заставить функцию изменить список, переданный в виде параметра?

есть такая функция внутри объекта. l - список, переданный в виде параметра.
Как видите, этот список несколько раз усекается.
def gefrom(self, l):
		self.value = []
		for i in range(0, self.size):
			self.value = self.value + l[:1]
			l = l[1:]

как сделать, чтобы изменения в списке l были видны во внешней части программы?
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
longclaps
@longclaps
Ставлю + к карме на хабре за ответы на вопросы
Чувак, лучше наличными )
def gefrom(self, l):
    self.value = l[:self.size]
    del l[:self.size]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tsarevfs
@tsarevfs
C++ developer
>>> def m(l):
...   l.pop(0)
... 
>>> l
[1, 2, 3, 4]
>>> m(l)
>>> l
[2, 3, 4]


Другой вариант -- работать с копией массива и возвращать его из функции через return.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы