使用 if/else 的列表推导式:语法和用法
在 Python 中使用列表推导式时,会遇到合并 if/else 逻辑的情况处理条件操作。本文介绍了此类场景的正确语法。
常见任务是根据源序列创建一个列表,并使用以下包含 if/else 构造的 for 循环:
results = [] for x in xs: results.append(f(x) if x is not None else '')
如果 x 为 None,此代码将 '' 附加到结果列表,否则计算 f(x)。使用列表理解也可以实现所需的结果,但需要对语法进行必要的调整:
results = [f(x) if x is not None else '' for x in xs]
关键区别在于列表理解中 if 和 else 子句的顺序。正确的语法要求将 if 子句放在 for 部分之前,然后是 else 子句。
一般来说,具有 if/else 条件的列表理解的语法是:
[f(x) if condition else g(x) for x in sequence]
对于仅涉及从源序列中过滤元素的 if 条件的列表推导式,语法为:
[f(x) for x in sequence if condition]
请注意,使用条件表达式在列表推导式的 if/else 语法中,与用于过滤的 if 构造不同。条件表达式允许根据条件在两个表达式之间进行选择,类似于其他语言中的三元运算符 ?: 。例如:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
此示例使用条件表达式打印该值是偶数还是奇数。
以上是如何在 Python 列表推导式中使用 if/else 逻辑?的详细内容。更多信息请关注PHP中文网其他相关文章!