Python 列表理解:for 和 if 语句?
Python List Comprehension: for and if statement?
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
1]正确输出
for 是 before if
newlist1 = [x for x in fruits if "a" in x]
^^^ ^^
2] 错误 即使 for 在 if[ 之前=41=]如上语句
newlist2 = [x for x in range(10) if x != 5 else 6]
^^^ ^^ ^^^^
3] 正确输出
但是这里 if 和 else 是 before for
newlist3 = [x if x != 5 else 6 for x in range(10)]
^^ ^^^^ ^^^
我可以知道为什么语句 3 渲染输出而语句 2 抛出错误吗?
在您的第二个示例中,if x != 5 else 6
不是 returns true 或 false 的过滤条件。这是一个不完整的语句 <val_1> if <condition> else <val_2>
,它没有定义 。
没有 'else' 部分它是一个过滤器。 (example_1)
在第三个示例中,您的条件表达式已完成 x if x != 5 else 6
。
但它 returns x 的值并且不过滤任何东西。
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
1]正确输出
for 是 before if
newlist1 = [x for x in fruits if "a" in x]
^^^ ^^
2] 错误 即使 for 在 if[ 之前=41=]如上语句
newlist2 = [x for x in range(10) if x != 5 else 6]
^^^ ^^ ^^^^
3] 正确输出
但是这里 if 和 else 是 before for
newlist3 = [x if x != 5 else 6 for x in range(10)]
^^ ^^^^ ^^^
我可以知道为什么语句 3 渲染输出而语句 2 抛出错误吗?
在您的第二个示例中,if x != 5 else 6
不是 returns true 或 false 的过滤条件。这是一个不完整的语句 <val_1> if <condition> else <val_2>
,它没有定义
在第三个示例中,您的条件表达式已完成 x if x != 5 else 6
。
但它 returns x 的值并且不过滤任何东西。