Python: изменение значений списка из цикла - PullRequest
0 голосов
/ 25 ноября 2018

Я создаю простую программу упаковки бинов на Python для класса и у меня проблема с областью действия, которую я не могу отследить.Я пытаюсь изменить значение в списке ffBins, однако список значение не изменилось.

Результаты печати показывают, что я ожидаю («10 5 5»), поскольку i вычитается из j, но это не меняет значение в фактическом списке, как я ожидаю.Я подозреваю, что мне нужно указать на список по-другому во время цикла, но решение ускользает от меня.Есть ли простой способ изменить значения в списке вместо текущей переменной j?

    ffBins.append(10)
    for i in ffItems:
        itemPacked = 0
        for j in ffBins:
            #print(j)
            if j >= i:
                print(j),
                print(i),
                j = j-i
                print(j)
                itemPacked = 1
            #break
        if itemPacked == 0:
            ffBins.append(10)
            ffBins[-1] = ffBins[-1]-ffItems[i]

1 Ответ

0 голосов
/ 25 ноября 2018

Все, что вы делаете в этом коде, привязывает j к новому значению.Вам необходимо установить значение обратно в список по его индексу.Вы можете использовать enumerate, чтобы получить индекс и значение.

for index, j in enumerate(ffBins):
    ...
     ffbins[index] = j - i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...