Найти - Пользователи
Полная версия: Прошу помощи со списками
Начало » Центр помощи » Прошу помощи со списками
1
Riki_tiki_tavi
Доброго времени суток, вопрос такой, почему при append одного списка в другой, первый ссылается на второй. То есть в коде ниже, мне нужно добавить список mylist2 в список mylist и затем очистить список mylist2, чтобы добавить в него уже другие элементы и опять добавить этот новый список в список mylist и тд, а получается, что список mylist ссылается на список mylist2, не понимаю, как это работает (((

s = input().split()
n = int(input())

def chunked(s, n):
mylist =
mylist2 =
count = n
for i in range(len(s)):
if count != 0:
mylist2.append(s)
count -= 1
if count == 0:
mylist.append(mylist2)
mylist2.clear()
count = n
return mylist


print(chunked(s, n))
py.user.next
Список - это набор указателей на объекты. Если объект меняется, то указатель продолжает указывать на него же. Поэтому объект при добавлении нужно полностью копировать и добавлять эту копию. Тогда в списке будет указатель не на сам список, а на созданную его отдельную копию.
  
>>> lst1 = [1, 2, 3]
>>> 
>>> lst2 = []
>>> 
>>> lst2.append(lst1[:])
>>> 
>>> lst2
[[1, 2, 3]]
>>> 
>>> lst1.append(4)
>>> 
>>> lst2.append(lst1[:])
>>> 
>>> lst2
[[1, 2, 3], [1, 2, 3, 4]]
>>>
Riki_tiki_tavi
py.user.next
Список - это набор указателей на объекты. Если объект меняется, то указатель продолжает указывать на него же. Поэтому объект при добавлении нужно полностью копировать и добавлять эту копию. Тогда в списке будет указатель не на сам список, а на созданную его отдельную копию.

Спасибо вам за помощь, теперь разобрался
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB