Я рекомендую прочитать Семантика имен переменных Python с точки зрения C ++ :
Все переменные являются ссылками
Это упрощение всей статьи, но это (и понимание того, что list
является изменяемым типом) должно помочь вам понять, как работает следующий пример.
In [5]: def update_list(lst, data):
...: for datum in data:
...: lst.append(datum)
...:
In [6]: l = [1, 2, 3]
In [7]: update_list(l, [4, 5, 6])
In [8]: l
Out[8]: [1, 2, 3, 4, 5, 6]
Вы можете даже сократить это, используя метод extend ():
In [9]: def update_list(lst, data):
...: lst.extend(data)
...:
Что на самом деле, вероятно, устраняет необходимость вашей функции.
N.B: list
является встроенным и, следовательно, неправильным выбором имени переменной.