嵌套fors和python中的列表理解功能

时间:2018-10-25 20:05:53

标签: python-3.x list-comprehension

我有此代码:

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只是一个字符串(路径)列表。它将引发异常:

  

分配前引用的本地变量“控制器”

我做了什么?我可以在第二个for循环中没有controller吗?

我的真正目标是列表理解版本:

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 :(得分:0)

您列出的理解能力是错误​​构建的。 The outer loop has to come first, followed by the inner loop

但是我真的建议完全不要使用列表理解。在我看来,它确实使循环很难阅读,因此您应该坚持使用该版本而无需理解。

尝试牢记Zen of python

timestamp

或以下语句:D

enter image description here