【发布时间】:2020-03-13 02:49:48
【问题描述】:
这是我正在处理的问题的一段简化代码。我无法弄清楚此处列表理解的语法有什么问题。有人可以帮忙吗?
for i in range(10):
a = [j if j == i for j in range(100)]
File "<ipython-input-19-4bf2e143eb37>", line 2
a = [j if j == i for j in range(100)]
^
SyntaxError: invalid syntax
编辑:显然我在上面的例子中改变了我的语法,因为'if'语句应该在'for'语句之后。 然而,我在这里也意识到一个奇怪的事情,如果“if”语句还包含一个“else”语句,那么它可以在“for”语句之前,如下例所示。不知道这背后是否有任何逻辑。
l = [22, 13, 45, 50, 98, 69, 43, 44, 1]
[x+1 if x >= 45 else x+5 for x in l]
对此有什么想法吗?
【问题讨论】:
-
你已经翻转了列表理解的格式。
-
共有三种不同的
ifs: 1. 一个控制结构,后跟一个表达式和:2. 三元运算符:<value1> if <expression> else <value2>3. 在条件部分的理解。不,不要混淆这三个!
标签: python syntax list-comprehension