如何在 Python 中使用 if 语句处理列表
发布日期:
本文内容
通过结合 if
语句与列表,我们可以实现多种功能:比如对列表中的特定元素进行特殊处理、高效地管理不断变化的情况(例如餐馆是否有某种食材),并确保代码在各种情况下都能按预期运行。
检查特殊元素
在条件测试中,我们演示了如何处理特殊的值 'bmw'
——需要采用不同的格式打印。现在你已经掌握了条件测试和 if
语句的基础知识,接下来我们将深入探讨如何检查列表中的特殊元素,并对其进行适当的处理。
继续使用比萨店的例子。这家比萨店在制作比萨时,每添加一种配料都会打印一条消息。为了更高效地编写这样的代码,可以创建一个包含顾客所点配料的列表,并使用循环来指出哪些配料被添加到了比萨中:
|
|
上述代码简单明了,因为它只是一个简单的 for
循环:
|
|
但如果比萨店暂时没有青椒(green peppers)了,该怎么办?为了解决这个问题,可以在 for
循环中嵌入一个 if
语句来进行判断:
|
|
在这段代码中,每次向比萨添加配料之前都会进行检查。if
语句用于检测顾客是否点了青椒。如果是,则显示一条提示信息,说明青椒暂时缺货。而对于其他配料,else
代码块会执行,确保它们能被正常添加到比萨中。
输出结果如下:
|
|
确定列表非空
到目前为止,我们假设要处理的每个列表至少包含一个元素。但在实际应用中,用户提供的列表可能是空的。因此,在运行 for
循环前确定列表是否为空非常重要。
下面是在制作比萨前检查顾客点的配料列表是否为空的例子。如果列表为空,就向顾客确认是否要点原味比萨;如果列表非空,则像前面的示例那样制作比萨:
|
|
首先创建一个空列表,其中不包含任何配料。然后进行简单的检查,而不是直接执行 for
循环。在 if
语句中将列表名用作条件表达式时,Python 将在列表至少包含一个元素时返回 True
,在列表为空时返回 False
1。如果 requested_toppings
非空,就运行与前一个示例相同的 for
循环;否则打印一条消息,询问顾客是否确实要点不加任何配料的原味比萨。
这里的列表为空,因此输出如下:
|
|
如果这个列表非空,输出将显示添加在比萨中的各种配料。
使用多个列表
顾客的要求五花八门,在比萨配料方面尤其如此。如果顾客想要在比萨中添加炸薯条(French fries),该怎么办呢?可以使用列表和 if
语句来确定能否满足顾客的要求。
我们来看看如何在制作比萨前拒绝怪异的配料要求。下面的示例定义了两个列表,其中第一个包含比萨店供应的配料,第二个则包含顾客点的配料。这次对于 requested_toppings
中的每个元素,都先检查它是否是比萨店供应的配料,再决定是否在比萨中添加它:
|
|
首先定义一个列表,其中包含比萨店供应的配料。请注意,如果比萨店供应的配料是固定的,也可以使用一个元组来存储它们。然后创建另一个列表,其中包含顾客点的配料。请注意那个不同寻常的配料——‘french fries’。接下来,遍历顾客点的配料列表。在这个循环中,对于顾客点的每种配料,都检查它是否在供应的配料列表中。如果答案是肯定的,就将其加入比萨,否则运行 else
代码块:打印一条消息,告诉顾客不供应这种配料。
这些代码的输出整洁且包含足够的信息:
|
|
通过寥寥几行代码,我们高效地处理了一种真实的情形!
对于数值
0
、空值None
、单引号空字符串''
、双引号空字符串""
、空列表[]
、空元组()
、空字典{}
,Python 都会返回False
。 ↩︎