首页  >  文章  >  后端开发  >  Python 列表推导式中条件语句的正确语法是什么?

Python 列表推导式中条件语句的正确语法是什么?

Susan Sarandon
Susan Sarandon原创
2024-10-22 13:14:02323浏览

What is the Correct Syntax for Conditional Statements in List Comprehensions in Python?

带有条件语句的列表推导式

在 Python 中,列表推导式提供了一种生成新列表的紧凑方式。但是,在这些推导式中使用条件语句时,遵守正确的语法以避免错误至关重要。

问题:比较可迭代对象

假设我们有两个可迭代对象,一个和 b,我们想要创建一个新列表,其中包含出现在两个可迭代对象中的元素。我们尝试使用以下代码:

<code class="python">a = ('q', 'r')
b = ('q')
print([ y if y not in b for y in a])</code>

语法错误

但是,此代码会产生无效语法错误,表明理解中使用的 lambda 函数存在问题.

解决方案:重新排序推导式

在列表推导式中使用条件语句的正确语法是将 if 表达式放在 for 子句之后。在我们的例子中,更正后的代码将是:

<code class="python">[y for y in a if y not in b]</code>

此理解将迭代 a 并仅当元素不存在于 b 中时才将元素添加到新列表中。结果应该产生 ['r'],如预期。

替代语法

或者,我们可以使用 if-else 三元运算符来处理其中的条件逻辑列表理解:

<code class="python">[y if y not in b else None for y in a]</code>

此代码将创建一个新列表,其中添加 b 中不存在的元素,而其他元素接收 None 值。

以上是Python 列表推导式中条件语句的正确语法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn