У меня есть назначение в Python (с помощью Jupyter).
Вот:
Мне нужно сделать список, названный странным на 27-й строке, который должен был бы получить результаты [[3, 1, 2], [3, 1, 2]], если я нахожу на нем функцию xrotateR (weird [0]).
Как я могу это сделать?
Функция xrotateR:
def xrotateR(lst) :
c=lst[-1:]
lst[:]=c+lst[0:-1]
Спасибо!
Они хотят, чтобы вы включили один и тот же список (буквально один и тот же объект в памяти, а не только равные списки) в список списков.
>>> def xrotateR(lst) :
... c=lst[-1:]
... lst[:]=c+lst[0:-1]
...
>>> weird = [[1, 2, 3]]*2
>>> weird
[[1, 2, 3], [1, 2, 3]]
Мы можем подтвердить, что элементы weird
не только равны, но и тот же объект с оператором is
.
>>> weird[0] is weird[1]
True
Таким образом, xrotateR
будет мутировать обе записи weird
.
>>> xrotateR(weird[0])
>>> weird
[[3, 1, 2], [3, 1, 2]]
Кстати, создание такого списка - обычная ошибка.
отредактируйте: попробуйте Python Tutor для визуализации, которую они задают, он рисует правильные диаграммы для вас. Просто убедитесь, что вы их понимаете. ;)