使用某些值在 python 中初始化列表时遇到困难

Facing difficulty in initializing list in python with some values

我在下面附上了我的 python 代码,我在用一些值初始化列表时遇到了一些困难,请看一下:-

array = [1, 2, 3, 3]
value = 6
dp = [[-1] * (value + 1)] * (len(array) + 1) 



for i in range(len(array) + 1):
    for j in range(value + 1):
        if i == 0 and j > 0:
            dp[i][j] = 0
        elif i >= 0 and j == 0:
            dp[i][j] = 1
        else:
            dp[i][j] = -1


for i in dp:
    for j in i:
        print(j,end = " ")
    print()

我得到的输出是:-

1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 -1

我期望的输出是:-

1  0  0  0  0  0  0
1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 -1

你们能不能找出我在学习使用 python 东西时出错的地方。

* (len(array) + 1) 创建 [[-1] * (value + 1)] 列表的副本,因此每次更改都会影响所有子列表。使用 for 循环来创建子列表

dp = [[-1] * (value + 1) for _ in range(len(array) + 1)]