Как прочитать все элементы в списке одновременно с помощью оператора if? - PullRequest
0 голосов
/ 18 июня 2020

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

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... то, что я хотел?

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

1 Ответ

0 голосов
/ 18 июня 2020

Уже разобрался! Я использовал все функции для решения этой проблемы.

check = all(item in finish_act for item in precedence)
    if check is True:
        q_active.append(follow_finish_act)
    else:
        q_active = q_active
...