继续,如果其他内联的Python
问题描述:
我一直无法找到继续/传递如果在一个为任何想法的窍门?请不要提供明确的回路作为解决方案,它应该是一行一行。继续,如果其他内联的Python
我测试了继续的代码,通过且仅当...
list_num=[1,3]
[("Hola" if i == 1 else continue) for i in list_num]
输出我的试验:
[("Hola" if i == 1 else continue) for i in list_num]
^
SyntaxError: invalid syntax
File "<stdin>", line 1
[("Hola" if i == 1 else pass) for i in list_num]
^
SyntaxError: invalid syntax
File "<stdin>", line 1
[(if i == 1: "Hola") for i in list_num]
^
SyntaxError: invalid syntax
答
如果你想添加一个警戒列表理解语句,它会在最后。此外,由于这是一个后卫没有else
条款:
list_num=[1,3]
["Hola" for i in list_num if i == 1]
答
您应该使用过滤功能列表中的理解。请看下面的例子:
['Hola' for i in list_num if i == 1]
答
要记住,三元运算符是仍然操作,因此需要返回一个表达式是很重要的。因此,您不能使用诸如continue
或pass
之类的语句。他们不是表达。
但是,无论如何,在列表理解中使用语句是完全不必要的。事实上,你甚至不需要三元运算符。从列表过滤项,是一种常见的成语,所以Python允许您在修真使用单if
语句为此提供了特殊的语法:
>>> list_num = [1, 3]
>>> ["Hola" for i in list_num if i == 1]
['Hola']
>>>
你回来“继续”作为三元操作的结果。一个if B else C是一个三元运算符,它评估B并返回A(如果为真),否则返回C. –
您不能在条件*表达式*中使用*语句*。 – vaultah