Почему я получаю только новые добавленные значения в списке? - PullRequest
1 голос
/ 18 июня 2020

У меня есть код, который выглядит так:

if len_after > len_before:
    # get resource demand of finish_act
    r_finish_act = [d for a, d in zip(j_set, R) if a in finish_act]

    # update available resources
    for i in r_finish_act:
        x = i[0]
    avail_res[0] = avail_res[0] + x

else:
    avail_res[0] = avail_res[0]

Цель этого кода - получить потребность в ресурсах для конечных sh действий (r_finish_act) и добавить их в avail_res[0]. Первое, что нужно проверить, - добавлено ли действие в finish_act. Это делается с помощью if-statement. После этого r_finish_act получается с помощью j_set and R.

j_set = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
R = [[0, 0], [4, 3], [2, 0], [2, 1], [0, 3], [1, 1], [1, 2], [2, 1], [0, 3], [2, 2], [0, 0]]

Например:

finish_act_before = [1]
avail_res[0] = 1
finish_act_after = [1, 2, 3] 
r_finish_act = [[4, 3], [2, 0]] 

Вывод приведенного выше кода:

avail_res[0] = 1 + 2 = 3

Ожидаемый результат:

avail_res[0] = 1 + 4 + 2 = 7

Как мог Я вношу это изменение для приведенного выше кода, так что все r_finish_act действий, добавленные в finish_act, будут добавлены к avail_res[0], а не только к последнему? Обратите внимание, что действия, которые необходимо завершить, различаются. Это может быть только одно действие, два и т. Д.

Любая помощь / предложения приветствуются! Спасибо!

1 Ответ

1 голос
/ 18 июня 2020

Как указано в комментариях, либо:

  • вам в основном не хватает отступа в строке avail_res[0] = avail_res[0] + x
  • вам не хватает + здесь: x = i[0] . Это должно быть x += i[0]

Примечание: не делайте и то, и другое :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...