Поверните первый элемент с другим результатом в Python

1

У меня есть назначение в Python (с помощью Jupyter).

Вот:

Изображение 174551

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

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

Функция xrotateR:

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

Спасибо!

  • 1
    Обычно я спрашиваю вашу попытку, но я могу понять, пропустит ли кто-то новичок в Python это задание.
  • 0
    Есть еще что-то неясное?
Теги:
arrays
list
element

1 ответ

2

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

>>> 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 для визуализации, которую они задают, он рисует правильные диаграммы для вас. Просто убедитесь, что вы их понимаете. ;)

  • 1
    Вау, спасибо большое!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню