小编mus*_*324的帖子

列表推导式中的条件。为什么当我使用“else”时会有所不同?

代码 A:

numbers = [2, -1, 79, 33, -45]
negative_doubled = [num * 2 for num in numbers if num < 0]
print(negative_doubled) # output is: [-2, -90]
Run Code Online (Sandbox Code Playgroud)

代码 B:

numbers = [2, -1, 79, 33, -45]
doubled = [num * 2 if num < 0 else num * 3 for num in numbers ]
print(doubled) # output is: [6, -2, 237, 99, -90]
Run Code Online (Sandbox Code Playgroud)

如您所见,if语句的位置是不同的。在代码 A 中,该if语句位于 for 循环语句之后。

他们为什么不写这样的代码?我会觉得它更直观。

numbers = [2, -1, 79, 33, …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list conditional-statements

0
推荐指数
1
解决办法
106
查看次数