在 Python 中使用 if-else 语句进行列表理解

在 Python 中使用 if-else 语句进行列表推导

List comprehension with if-else statement in Python

在 if-else 中使用列表推导式:

  1. if在列表理解中首先指定语句。
  2. 在 之后指定else语句if
  3. 在列表理解中迭代一个集合。
主程序
a_list = [2, 4, 8, 13, 10] new_list = [ item if item > 8 else item + 10 for item in a_list ] print(new_list) # 👉️ [12, 14, 18, 13, 10]
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在列表理解中使用 if-else 的语法如下。

主程序
new_list = [ return A if condition_is_met else return B for item in list ]

该语法a if condition else b称为三元运算符。

主程序
site = 'bobbyhadz.com' result = 'a' if len(site) > 1 else 'b' print(result) # 👉️ 'a'

三元运算符如果满足条件则返回左边的值,否则返回右边的值。

如果您的列表理解中只有一个if语句,请在末尾指定条件。

主程序
a_list = [2, 4, 8, 13, 10] new_list = [ item for item in a_list if item > 8 ] print(new_list) # 👉️ [13, 10]

但是,您不能在列表理解的末尾使用 if/else 语句,因为它是无效语法。

这是另一个例子。

主程序
a_list = [2, None, 4, None, 8] new_list = [ item if item is not None else 0 for item in a_list ] print(new_list) # 👉️ [2, 0, 4, 0, 8]

我们使用列表理解来迭代列表。

if语句检查当前项目是否存在,如果满足条件,则返回该项目。 None

否则,else语句返回0

列表理解等效于以下for循环。

主程序
a_list = [2, None, 4, None, 8] new_list = [] for item in a_list: if item is not None: new_list.append(item) else: new_list.append(0) print(new_list) # 👉️ [2, 0, 4, 0, 8]
您还可以在列表理解中使用ifwith multipleelse语句来实现elif条件。
主程序
a_list = [2, 4, 8, 4, 19] new_list = ['a' if item == 4 else 'b' if item == 8 else 'c' for item in a_list] print(new_list) # 👉️ ['c', 'a', 'b', 'a', 'c']

if语句检查当前项是否等于4,如果满足条件,a则返回字母。

else语句返回另一个条件。

条件检查项目是否等于8如果满足条件,b则退回信件,否则,退回信件。 c

在伪代码中,语法如下所示。

主程序
new_list = [ return A if condition_is_met else return B if condition_is_met else return C for item in a_list ]

以下是如何使用for循环实现上一个示例中的列表推导式。

主程序
a_list = [2, 4, 8, 4, 19] new_list = [] for item in a_list: if item == 4: new_list.append('a') elif item == 8: new_list.append('b') else: new_list.append('c') print(new_list) # 👉️ ['c', 'a', 'b', 'a', 'c']

我们检查该项目是否等于并在满足条件时4附加到新列表。a

否则,该elif语句检查当前项是否等于8如果满足条件,我们将附加b到新列表。

如果不满足条件,则else语句运行,我们追加c到列表中。

检查列表理解中的太多条件可能会变得比必要的更复杂。

在这些情况下,您可以使用一个简单的for循环来提高可读性。