首先,我制作了一个仅包含0的嵌套列表矩阵。然后,我试图更改嵌套列表中某些索引的值。但是在打印列表时,不维护订单。请帮忙
h, n, c = [int(i) for i in input().split()]
mincost = []
for i in range(0, h):
mincost.append([])
for j in range(0, c):
mincost[i].append(0)
for i in range(0, n):
shop,price = [int(p) for p in input().split()]
for j in range(0,h):
if j == shop:
for k in range(0, c):
#print(j)
mincost[i][k] = (k+1)*price
#to print as a matrix
for i in range(0, h):
for j in range(0, c):
print(i,end="line ")
print(mincost[i][j],end=' ')
print()
#to print as a nested list
print(mincost)
这是输入
5 2 9
0 4
4 9
这是我在打印时所用的矩阵形式
4 8 12 16 20 24 28 32 36
9 18 27 36 45 54 63 72 81
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
这是我以嵌套列表形式得到的
[[4, 8, 12, 16, 20, 24, 28, 32, 36], [9, 18, 27, 36, 45, 54, 63, 72, 81], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0]]
我认为索引为0
的列表的索引实际上应该为4
。
我不知道哪里有错误,或者是否应用了我不知道的概念
您在这里使用了错误的索引来更新矩阵值:
for k in range(0, c):
# print(j)
mincost[i][k] = (k+1)*price
在这里您应该使用索引j
代替i
:
for k in range(0, c):
# print(j)
mincost[j][k] = (k+1)*price
输入:
5 2 9
0 4
4 9
输出:
[[4, 8, 12, 16, 20, 24, 28, 32, 36],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[9, 18, 27, 36, 45, 54, 63, 72, 81]
]