Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何将这段代码转换为列表理解_Python 2.7_List_List Comprehension - Fatal编程技术网

Python 2.7 如何将这段代码转换为列表理解

Python 2.7 如何将这段代码转换为列表理解,python-2.7,list,list-comprehension,Python 2.7,List,List Comprehension,我只是想问一下,是否有可能把这段代码转换成一个列表?我正在使用python 2.7+ 代码如下所示: for x in y: if condition1: if condition3: expression1 else: expression2 else: if condition5: expression3 else:

我只是想问一下,是否有可能把这段代码转换成一个列表?我正在使用python 2.7+

代码如下所示:

for x in y:
    if condition1:
        if condition3:
            expression1
        else:
            expression2
    else:
        if condition5:
            expression3
        else:
            expression4
c=[expression1 if condition3 else expression2 for x in y if condition1]
c=[expression1 if condition3 else expression2 for x in y if condition1 else expression3 if condition5 else expression4]
[(  ...  ) if condition1 else ( ... ) for x in y]
到目前为止,我已经成功地编写了如下代码:

for x in y:
    if condition1:
        if condition3:
            expression1
        else:
            expression2
    else:
        if condition5:
            expression3
        else:
            expression4
c=[expression1 if condition3 else expression2 for x in y if condition1]
c=[expression1 if condition3 else expression2 for x in y if condition1 else expression3 if condition5 else expression4]
[(  ...  ) if condition1 else ( ... ) for x in y]
它运行平稳,但不完整

我的问题是,每当我将代码从第7行添加到第11行时,如下所示:

for x in y:
    if condition1:
        if condition3:
            expression1
        else:
            expression2
    else:
        if condition5:
            expression3
        else:
            expression4
c=[expression1 if condition3 else expression2 for x in y if condition1]
c=[expression1 if condition3 else expression2 for x in y if condition1 else expression3 if condition5 else expression4]
[(  ...  ) if condition1 else ( ... ) for x in y]

上面写着“语法错误”。嗯。你能给我一些建议吗?我会很感激的。让我知道这个问题是否有可能重复。

您需要y中x的所有条件,并且需要用括号分隔嵌套if语句的代码,如下所示:

for x in y:
    if condition1:
        if condition3:
            expression1
        else:
            expression2
    else:
        if condition5:
            expression3
        else:
            expression4
c=[expression1 if condition3 else expression2 for x in y if condition1]
c=[expression1 if condition3 else expression2 for x in y if condition1 else expression3 if condition5 else expression4]
[(  ...  ) if condition1 else ( ... ) for x in y]
最后的理解是:

c=[(expression1 if condition3 else expression2) if condition1 else (expression3 if condition5 else expression4) for x in y]

您需要y中x的所有条件,并且需要用括号分隔嵌套if语句的代码,如下所示:

for x in y:
    if condition1:
        if condition3:
            expression1
        else:
            expression2
    else:
        if condition5:
            expression3
        else:
            expression4
c=[expression1 if condition3 else expression2 for x in y if condition1]
c=[expression1 if condition3 else expression2 for x in y if condition1 else expression3 if condition5 else expression4]
[(  ...  ) if condition1 else ( ... ) for x in y]
最后的理解是:

c=[(expression1 if condition3 else expression2) if condition1 else (expression3 if condition5 else expression4) for x in y]

非常感谢特雷泽维尔…:-)非常感谢特雷泽维尔…:-)