У меня есть проект, который выглядит примерно так:
e_list = [[], [1], [1], [2], [3], [3], [5], [4, 7], [6], [8, 9], [10]]
s_follow_int = [[2, 3], 4, [5, 6], 8, 7, 9, 8, 10, 10, 11]
precedence = e_list[follow_finish_act - 1]
if len(precedence) > 1:
if precedence in finish_act:
q_active.append(follow_finish_act)
else:
q_active = q_active
else:
q_active.append(follow_finish_act)
Цель состоит в том, чтобы перед добавлением follow_finish_act
или последующего действия для действия fini sh его precedence
необходимо проверить первый. Если all precedence
находится в finish_act
, то follow_finish_act
можно добавить к q_active
. В противном случае q_active
остается.
Проблема с приведенным выше кодом заключается в том, что у меня есть:
finish_act = [4]
follow_finish_act = 8 # from s_follow_int
precedence of follow_finish_act = [4, 7] # from e_list
Поскольку Activity 7
все еще отсутствует в finish_act
, то follow_finish_act 8
нельзя добавить к q_active
. Дело в том, что с приведенным выше кодом, даже если 7
уже находится в finish_act
вместе с 4, он все равно не прибавит 8 к q_active
. Я попытался изменить его на if all(precedence) in finish_act
, но он автоматически добавляет 8, даже если 7 все еще не закончено.
Ожидаемый результат, если 7 не завершено:
q_active = []
Если и 4, и 7 находятся в finish_act, то ожидаемый результат будет:
q_active = [8]
Что изменится я должен сделать для If precedence...
то, что я хотел?
Любая помощь / предложения будут оценены! Спасибо!