【问题标题】:Rotate First Element with Different Result in Python在 Python 中旋转具有不同结果的第一个元素
【发布时间】:2018-10-18 16:58:47
【问题描述】:

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

这里是:

我需要在第 27 行创建一个名为 weird 的列表,如果我执行 xrotateR(weird[0 ]) 函数就可以了。

我该怎么做?

xrotateR 函数是:

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

谢谢!

【问题讨论】:

  • 通常我会要求您尝试,但如果有人对 Python 不熟悉,我可以理解此作业是否空白。
  • 还有什么不清楚的地方吗?

标签: python arrays list element


【解决方案1】:

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

>>> def xrotateR(lst) :
...     c=lst[-1:]
...     lst[:]=c+lst[0:-1]
... 
>>> weird = [[1, 2, 3]]*2
>>> weird
[[1, 2, 3], [1, 2, 3]]

我们可以通过is 运算符确认weird 的元素不仅相等而且是同一个对象。

>>> weird[0] is weird[1]
True

因此,xrotateR 将改变 weird 的两个条目。

>>> xrotateR(weird[0])
>>> weird
[[3, 1, 2], [3, 1, 2]]

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

编辑:试试Python Tutor 他们要求的可视化,它会为您绘制正确的图表。只要确保你理解他们。 ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2014-10-24
    相关资源
    最近更新 更多