在特定情况下,我不太了解数据结构中追加和扩展之间的区别。
a = [1]
a.append(a)
print(a)
#[1, [...]]
但
a = [1]
a.extend(a)
print(a)
#[1, 1]
但
a = 1,
a += a
print(a)
#(1, 1)
据我了解,在第一种情况下,我创建了一个列表,将其放入其中,但由于它已经更改,并且 ID 保持不变,因此它必须再次递归更改自身,依此类推。第三步,我们改变了元组,但是改变了它的 id,相应地,那个元组就不再和 after 一样了。但是第二个有什么问题?
a.append(x)愚蠢地将元素x原样添加到列表a中。x可以是任何东西,它只会被添加到列表中。如果x是一个列表,则将一个元素添加到a - 列表x。在扩展中,您需要传递一个迭代器,它将逐个元素添加到列表中。
这完全等同于代码:
同时,里面有什么并不重要,
a
重要的是它可以被迭代,并且它可以a.append
工作。更新:
a.copy()
已安装,extrn 是正确的,如果您不检查代码 - 会有某种伏击。.append()
将要添加到列表中的第1 个元素作为参数,.extend()
将所有元素都添加到列表中的列表作为参数。append 添加一个对象,extend extends,也就是extend和append类似,只是只有一个可迭代的对象可以作为参数,是解包的