Python 2.7 如何将这段代码转换为列表理解
我只是想问一下,是否有可能把这段代码转换成一个列表?我正在使用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:
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]
非常感谢特雷泽维尔…:-)非常感谢特雷泽维尔…:-)