【发布时间】:2022-01-12 09:32:53
【问题描述】:
版本:python 3
代码很简单
dp = [[float('inf')] * 3] * 3
dp[0][0] = 1
我得到了什么
- [[1, inf, inf], [1, inf, inf], [1, inf, inf]]
我期望得到什么
- [[1, inf, inf], [inf, inf, inf], [inf, inf, inf]]
有什么线索吗?
【问题讨论】:
标签: python
版本:python 3
代码很简单
dp = [[float('inf')] * 3] * 3
dp[0][0] = 1
我得到了什么
我期望得到什么
有什么线索吗?
【问题讨论】:
标签: python
list * number 表示不是列表的副本,而是 number 引用同一列表(相同的内存位置)。这就是为什么改变三个列表之一会改变其他列表的原因。
解决方案可能是(使用循环创建列表):
dp = [[float("inf")] * 3 for i in range(3)]
【讨论】: