我在Python中有一个作业(使用Jupyter)。
这里是:
我需要在第27行制作一个名为 weird 的列表,如果执行xrotateR(weird [0,则为[[3,1,2],[3,1,2]] ])功能。
我该怎么做?
xrotateR函数是:
def xrotateR(lst) :
c=lst[-1:]
lst[:]=c+lst[0:-1]
谢谢!
答案 0 :(得分: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]]
举例来说,实例化这样的列表是common bug。
编辑:尝试Python Tutor获得他们要求的可视化效果,它将为您绘制正确的图表。只要确保您了解它们即可。 ;)