Поверните первый элемент с другим результатом в Python - PullRequest
0 голосов
/ 18 октября 2018

У меня есть задание в Python (с использованием Jupyter).

Вот оно:

enter image description here

Мне нужно сделатьсписок, названный странный в 27-й строке, который должен привести к [[3, 1, 2], [3, 1, 2]], если я сделаю для него функцию xrotateR (weird [0]).

Как я могу это сделать?

Функция xrotateR:

def xrotateR(lst) :
    c=lst[-1:]
    lst[:]=c+lst[0:-1]

Спасибо!

1 Ответ

0 голосов
/ 18 октября 2018

Они хотят, чтобы вы поместили один и тот же список (буквально один и тот же объект в памяти, а не просто равные списки) в список списков.

>>> 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]]

Создание такого списка общая ошибка , между прочим.

edit: попробуйте Python Tutor для запрашиваемых визуализаций, он нарисует правильные диаграммы для вас.Просто убедитесь, что вы понимаете их.;)

...