[2 = [[] * n可能会导致意外行为,其中列表似乎链接在一起。
出现此问题,因为[[[]]中使用的Star( *)操作员 * n创建了引用的列表到同一基础列表对象。当您修改序列中的一个列表之一时,更改会反映在所有其他列表中,因为它们都参考了同一对象。创建一个不同列表的列表,重要的是分别初始化每个列表。可以使用以下语法来实现这一点:
以说明差异,请考虑以下代码段:
] * 3 x [1] .append(0) print(x)#输出:[[0],[0],[0]]在此示例中,列表x包含对同一列表对象的三个引用,因此对一个列表进行的任何修改都会影响另一方面。另一方面,以下代码段创建了三个不同列表的列表:
x [1] .append(0) print(x)#输出:[[],[0],[] []免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3