使用某些值在 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)]
我在下面附上了我的 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)]