当前位置: 首页 > 面试题库 >

Python列表乘法:[[…]] * 3构成3个列表,它们在修改后会相互镜像

司马作人
2023-03-14
问题内容

为什么会这样呢?我不太了解:

>>> P = [ [()]*3 ]*3
>>> P
[[(), (), ()], [(), (), ()], [(), (), ()]]
>>> P[0][0]=1
>>> P
[[1, (), ()], [1, (), ()], [1, (), ()]]

问题答案:

你已对同一列表进行了3次引用。

>>> a = b = []
>>> a.append(42)
>>> b
[42]

你想这样做:

P = [[()] * 3 for x in range(3)]


 类似资料:
  • "Come to me, all you that are weary and are carrying heavy burdens,and I will give you rest. Take my yoke upon you, and learn from me; for I am gentle and humble in heart, and you will find rest for y

  • 问题内容: 我想将3个列表合并到一个列表中。例如,我有三个列表: 最后我想得到 出,, 有没有更快的方法来合并这三个列表?这是我的代码: 问题答案:

  • 问题内容: 例如: 上面的代码不执行任何操作,因为条件不是通过引用获得的。正确的方法是什么? 问题答案: 您可以使用: 但是,总的来说,这些东西在使用辅助函数和列表理解时会更加干净: 应该注意的是,第二种解决方案不会适当地更新列表-换句话说,如果您对此列表有其他引用,则它们不会受到影响。如果需要,可以使用切片分配很容易地进行替换:

  • 问题内容: 上面的python代码使输出与预期的完全不同。我想循环播放项目,以便在循环播放时可以跳过某个项目。 问题答案: 该代码试图在迭代列表时修改列表。我在任何情况下都不会这样做。 你可以使用运算符跳过列表中的每三个项目。 关于我的示例的其他要点与中的新语法有关。 我使用列表推导定义t,因为它在中有效(请参见下文) t是中的函数 现在,的行为类似于,但它适用于任意大小的值。后者不再存在。

  • 主要内容:修改单个元素,修改一组元素Python 提供了两种修改列表(list)元素的方法,你可以每次修改单个元素,也可以每次修改一组元素(多个)。 修改单个元素 修改单个元素非常简单,直接对元素赋值即可。请看下面的例子: 运行结果: [40, 36, -26, 2, -66.2, 100, 7] 使用索引得到列表元素后,通过 赋值就改变了元素的值。 修改一组元素 Python 支持通过切片语法给一组元素赋值。在进行这种操作时,如果

  • 我试图从一个范围创建一个列表,但当我将它粘贴到另一个列表中时,我得到的是一个类,而不是我期望的列表- 代码: 这输出<代码>范围(0,3),