在Python中使用不同的结果旋转第一个元素

2024-09-29 19:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python作业(使用Jupyter)

在这里:

enter image description here

我需要在第27行创建一个名为weird的列表,如果我对其执行xrotateR(weird[0])函数,该列表将产生[[3,1,2],[3,1,2]]

我该怎么做

xrotateR的功能是:

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

谢谢


Tags: 函数功能列表def作业jupyterlstweird
1条回答
网友
1楼 · 发布于 2024-09-29 19:23:55

他们希望您将相同的列表(实际上是内存中相同的对象,而不仅仅是相等的列表)放入列表列表中

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

顺便说一下,实例化这样一个列表是一个common bug

编辑:试试Python Tutor他们要求的可视化效果,它会为你绘制正确的图表。一定要理解他们

相关问题 更多 >

    热门问题