Вложенные форы и если в списке понимание в Python - PullRequest
0 голосов
/ 25 октября 2018

У меня есть этот код:

for controller in se8650_list:
    for graphic in AS.client.get_children(controller + '/Application/$Graphics'):
        if 'Config' not in graphic._name:
            airflow_list.append(graphic._path)

se8650_list - это просто список строк (путей).Выдает исключение:

локальная переменная 'controller', на которую ссылается перед присваиванием

Что я сделал?Могу ли я не иметь controller во втором цикле for, подобном этому?

Моя настоящая цель - это версия для понимания списка:

airflow_list = [graphic._path for graphic in AS.client.get_children(controller + '/Application/$Graphics') if 'Config' not in graphic._name for controller in se8650_list]

Но я также получаю ошибки там:

имя 'контроллер' не определено

1 Ответ

0 голосов
/ 26 октября 2018

Вы понимаете, что список построен неправильно. Внешний цикл должен идти первым, затем следует внутренний цикл .

Но я бы действительно рекомендовал вообще не использовать понимание списка.По моему мнению, это делает петли действительно трудными для чтения, и вам следует придерживаться версии без понимания.

Старайтесь помнить Zen of Python

[..]
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
[..]

или следующее утверждение: D

enter image description here

...