2015-06-04 2 views
-2

Я хочу изменить элементы списка, заданные как параметр. НапримерСписки параметров изменения Python

def method(list) : 
    list = [1,2,3] 

Я хочу, чтобы любой перечень, приведенный в качестве изменения параметров в [1,2,3]. Итак, я получаю что-то вроде этого:

>>> a =[4,5,6] 
>>> method(a) 
>>> a 
[1,2,3] 
+0

Просто для любопытства, почему? –

+0

Так всегда 'return [1,2,3]'? – fedorqui

+0

Не используйте 'list' в качестве имени переменной - он маскирует встроенную функцию' list() '. То же самое с остальными [этими] (https://docs.python.org/2/library/functions.html). – MattDMo

ответ

1

Используйте следующую функцию.

def method(lst) : 
    list_ = [1,2,3] 
    return list_ 

a = [4,1,2] 

a = method(a) 
3

Используйте список нарезка:

def method(l): 
    l[:]=[1,2,3] 
0

Во-первых, не используйте list в качестве собственной переменной, поскольку это маскирует встроенная функция list().

list s передаются по ссылке, но если вы переназначите что-то ссылку в локальную область функции, ссылка просто укажет на новый объект. Вместо этого return новый объект, а затем сохраните ссылку на него.

>>> def method(lst): 
...  return [1, 2, 3] 
... 
>>> a = [4, 5, 6] 
>>> a = method(a) 
>>> a 
[1, 2, 3] 
0

Это должно работать в списке любой длины.

def method(lst): 
    lst[:] = [x+1 for x in range(len(lst))] 
+0

Работал спасибо :) Трюк для использования [:] сделал это. – Domien

Смежные вопросы