你好,我是悦创。接下来我发一下我一对一伯克利学员提问的一个问题:
def swap(a, b):
"""Swap the contents of lists a and b.
>>> a = [1, 'two', 3]
>>> b = [4, [5, 6]]
>>> swap(a, b)
>>> a
[4, [5, 6]]
>>> b
[1, 'two', 3]
"""
上面这个题目其实很简单,但是为了达到测试要求,不能修改变量。我原本给学员的代码:
def swap(a1, b1):
"""Swap the contents of lists a and b.
>>> a = [1, 'two', 3]
>>> b = [4, [5, 6]]
>>> swap(a, b)
>>> a
[4, [5, 6]]
>>> b
[1, 'two', 3]
"""
global a, b
a, b = b1, a1
# return
a = [1, 'two', 3]
b = [4, [5, 6]]
swap(a, b)
print(a, b)
其实,效果是达到了,但是细心的网友会发现,我改题目了。也就是函数参数被我修改了。最后,学员在 ok 系统上的运行结果:
网友的交流:
最后只能使用 copy 函数进行操作了。
def swap(a,b):
tempA = a.copy()
for i in range(len(a)):
a.pop()
for i in range(len(b)):
a.append(b[i])
for i in range(len(b)):
b.pop()
for i in range(len(tempA)):
b.append(tempA[i])
这个结果就成功了,我表示挺疑惑的。不过还是只能接受。
当然,还有更不一样的: