您可能认为列表理解是一个高级概念。然而,在棘手的情况下,它只需一行就可以简化您的代码。是时候了解它是如何工作的了。我将用示例.
在初级水平上解释它您经常看到符号 l2 = [x 1 for x in l]。据说是这样的:
l2 = [] for x in l: x = x 1 l2.append(x)
对于这两种情况,如果我们以 l = [10, 100, 1000] 开始,l2 将是:
[11, 101, 1001]
第一个语法就是我们所说的列表理解.
您可能更喜欢通常的 for 循环,但在本文结束时,我保证您将有信心使用列表理解!
另外,我们从文档中查看详细的官方定义https://docs.python.org/3/tutorial/datastructs.html#list-com经理
列表推导式提供了一种创建列表的简洁方法。常见的应用是创建新列表,其中每个元素都是应用于另一个序列或可迭代的每个成员的某些操作的结果,或者创建满足特定条件的这些元素的子序列。
让我们进一步分解一下。列表理解只是编写代码的一种不同方式,它更短且更容易创建新列表。列表推导的结果是一个列表,这就是我们将其分配给列表的原因。
让我们回顾一下定义的第二部分,其中讨论了常见的示例。这应该使用具体示例来完成。
1.
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"] uppercase_fast_foods = [food.upper() for food in fast_foods]
此后,uppercase_fast_foods 将是:
['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']
我们使用 upper() 函数将列表中的每个食物项目更改为大写。因此,所有项目现在均为大写。这就是我们“创建新列表的方式,其中每个元素都是应用于另一个序列或可迭代的每个成员的某些操作的结果。”
2.
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"] foods_with_space = [food for food in fast_foods if " " in food]
此后,foods_with_space 将是:
['Fried Chicken', 'Hot Dog']
上面的代码行从列表中检索包含空白字符的项目。这就是我们“创建新列表的方式,其中每个元素都是应用于另一个序列或可迭代的每个成员的某些操作的结果。”
我在许多问题中使用了列表推导式,因为每当我遇到太多 for 循环时,我就会想,“没问题,我会简化它们。”事实证明,这是相同的逻辑,只是更干净! ?
言归正传,以下是我提出的一些最相关的示例:
1.修改列表的每个元素
foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"] foods_with_version = [food ' - 2024' for food in foods] print(foods_with_version)
输出:
['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']
在此示例中,我们获取一份食品列表,并为每一项添加“- 2024”。我们使用列表理解来快速创建包含这些更新名称的新列表。
2.根据条件从列表创建子列表
foods = ["Burger", "Fried Chicken", "Hot Dog", "Fries", "Pizza"] long_foods = [food for food in foods if len(food) > 7] print(long_foods)
输出:
['Fried Chicken']`
在此示例中,我们创建一个食品列表并过滤掉超过 7 个字符的食品。我们使用带有条件的列表理解来实现此目的。
3.使用带有列表理解的范围函数来创建列表
x = [i for i in range(10, 20, 2)] print(x)
输出:
[10, 12, 14, 16, 18]
在此示例中,我们使用 range() 的列表理解创建一个范围从 10 到 18 的数字列表。
4.将列表理解应用于字符串
input_string = "hello world" marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string] print(marked_vowels)
输出:
['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']
在最后一个示例中,我们采用一个字符串并用星号 (*) 标记其元音。我们使用列表理解根据原始字符串创建一个新列表。
在本文中,我涵盖了有关列表推导式的所有基本见解,从定义到进一步解释它们的各种示例。我希望一切都清楚了,并且从现在开始您会更有动力将列表推导式合并到您的 Python 代码中!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3