在 Python 的列表理解中使用 elif 语句

在 Python 的列表推导中使用 elif 语句

Using elif statement in a List comprehension in Python

elif要在列表理解中使用语句:

  1. 使用if语句检查条件。
  2. 使用else语句来实现elif子句。
  3. 如果两个条件都不满足,则使用第二个else语句返回一个值。
主程序
a_list = [1, 2, 2, 5, 1, 9] new_list = [ 'a' if item == 1 else 'b' if item == 2 else 'c' for item in a_list ] print(new_list) # 👉️ ['a', 'b', 'b', 'c', 'a', 'c']
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

我们使用一个else语句来实现elif列表理解中的一个子句。

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

else语句返回另一个条件。条件检查项目是否等于2如果满足条件,则返回。 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 ]

请注意,ifandelse语句位于列表理解的开头。

以下是我们如何使用
for循环从示例中实现列表理解。

主程序
a_list = [1, 2, 2, 5, 1, 9] new_list = [] for item in a_list: if item == 1: new_list.append('a') elif item == 2: new_list.append('b') else: new_list.append('c') # 👇️ ['a', 'b', 'b', 'c', 'a', 'c'] print(new_list)

代码示例中的for循环等效于列表理解。

elif这是在列表理解中使用语句的另一个示例。

主程序
a_list = [1, 2, 2, None, 1, None] new_list = [ 0 if item is None else item if item % 2 == 0 else item + 11 for item in a_list ] print(new_list) # 👉️ [12, 2, 2, 0, 12, 0]

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

else语句实现了另一个条件。该条件检查数字除以2的余数是否为 0

如果满足条件,则返回该项目,否则,返回该项目item + 11

如果您只需要在列表理解中实现 if-else 语句,则可以使用相同的方法。

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

if语句检查项目是否为None如果满足条件,0则退货,否则,退货。

伪代码中的语法如下所示。

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

请注意,ifandelse语句是在列表理解的开头指定的。

如果您在列表理解中只有一个if语句,请确保在最后指定它。
主程序
a_list = [1, 2, 2, None, 1, None] new_list = [ item for item in a_list if item is not None ] print(new_list) # 👉️ [1, 2, 2, 1]

在列表理解中实现if-elif-else语句可能会使您的代码更难阅读。

如果是这种情况,只需使用for循环即可。

主程序
a_list = [1, 2, 2, None, 1, None] new_list = [] for item in a_list: if item is None: new_list.append(0) elif item % 2 == 0: new_list.append(item) else: new_list.append(item + 11) print(new_list) # 👉️ [12, 2, 2, 0, 12, 0]

for循环方法有点冗长,但在我看来,它更具可读性和直观性