списки, присутствующие во вложенном списке, не отображаются как проиндексированные при добавлении (индекс изменен) - PullRequest
0 голосов
/ 23 октября 2019

сначала я создал матрицу вложенных списков, которая содержит только 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.

Я не понимаю, где ошибка или еслиприменяется концепция, которую я не знаю

1 Ответ

0 голосов
/ 23 октября 2019

Вы использовали неправильный индекс для обновления значения матрицы здесь:

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]
]
...