if/else 列表推导式中的条件表达式
在 Python 中,可以将包含 if/else 语句的 for 循环转换为列表使用条件表达式的理解。让我们回顾一个常见的场景:
带有 if/else 的 For 循环:
results = [] for x in xs: results.append(f(x) if x is not None else '')
这里,我们的目标是如果 x 不为 None,则将 f(x) 的结果附加到结果中;否则,我们附加一个空字符串。
尝试将其转换为列表理解,如下所示:
[f(x) for x in xs if x is not None else '']
将导致语法错误。正确的语法是:
[f(x) if x is not None else '' for x in xs]
一般来说,使用 if/else 的列表推导式的语法是:
[f(x) if condition else g(x) for x in sequence]
其中 f(x) 和 g(x) 表示表达式根据条件进行评估。
上述语法中使用的条件表达式与三元运算符 ? 具有相同的用途:在其他编程语言中也能找到。例如:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
这简洁地表达了如果 value 能被 2 整除,则输出应该是“偶数”;否则,它应该是“奇数”。
以上是如何在 Python 列表推导式中有效使用 if/else 逻辑?的详细内容。更多信息请关注PHP中文网其他相关文章!