Python中的列表理解(附示例)

已发表: 2021-08-22

Python 是世界上最流行的编程语言之一。 2020年在RedMonk编程语言流行度排名中位列第二 其广泛流行的原因在于其易于理解的代码和简单性。 如果您熟悉语法,用 python 编写代码非常简单。 它的独特亮点之一是它的列表理解功能。 只需编写一行代码,您就可以对列表执行 Python 理解!

以下几点将说明什么是列表推导以及如何在不同的设置中使用它。 我们还将介绍列表推导式和 for 循环之间存在的差异,这可能会让人很困惑。 您还将了解其他相关功能以及如何使用它们:

目录

什么是列表理解 Python?

Python 提供了多种创建列表的方法。 其中最有效的方法之一是列表理解功能。 它允许您通过编写一行代码来创建列表。

您可以使用列表推导从其他可迭代元素(例如数组、字符串、元组、列表等)创建新列表。它由带有表达式的括号组成。 系统使用 for 循环为每个元素执行表达式以迭代每个元素。

Python 中列表推导的语法如下:

your_new_list = [条件条件下 your_old_list 中元素的表达式]

在这里, your_new_list 是新列表(或结果)。 该表达式取决于您用于 your_old_list 中每个元素的变量。 最后,“if 条件”是过滤器。

Python 开发人员更喜欢列表推导而不是循环的原因有很多。 主要原因是效率。 与使用循环相比,使用列表推导式创建列表的工作量和代码要少得多

由于它需要的代码行数比循环少,因此列表理解还可以为您节省大量时间。 它使代码保持简单并使其更加用户友好。 此外,列表推导涵盖了公式中的迭代语句。 如果您想获得更多关于 python 的专业知识,请查看我们来自顶尖大学的数据科学课程。

列表理解 Python 示例

我们将分享几个如何在 Python 中使用列表推导式的示例。 在您了解它们的工作原理后,最好研究它们并在您自己的程序中复制它们。 它将帮助您正确理解工具列表理解的真正有效性:

示例 1:

在本例中,我们将使用 Python 推导式创建一个简单的列表:

输入

a = [i for i in range(5)]

打印一个

输出

[0, 1, 2, 3, 4]

示例 2:

在下面的示例中,我们将创建一个包含 2 的倍数的列表:

输入

new_list = [a*2 for a in range(10)]

输出

[0、2、4、6、8、10、12、14、16、18]

示例 3

您可以使用列表推导将列表中的每个项目相乘:

输入

old_list = [1, 2, 3]

new_list = [旧列表中项目的项目*2]

打印新列表

输出

[2, 4, 6]

示例 4

列表理解不仅限于整数,您还可以将它与字符串一起使用。 在此示例中,我们将使用列表推导来创建原始列表中每个单词的首字母的列表

输入

my_list = [“升级”,“是”,“有趣”]

结果 = [word[0] for my_list 中的单词]

打印结果

输出

['你','我','f']

示例 5

您还可以使用列表推导从字符串中提取数字

输入

old_list = “upGrad 123 很有趣”

new_list = [x for x in string if x.isdigit()]

打印新列表

输出

['1', '2', '3']

示例 6:

您还可以将列表推导与函数一起使用,这是 Python 数学实现的重要组成部分:

输入

# 首先,我们将创建一个名为 Triple 的函数

定义三元组(x

返回 x*3

# 现在你有一个工作函数,如果你输入一个有效值,它会打印一个结果

>>> 打印三重奏(2)

输出

6

现在您可以使用此函数的列表推导来创建更多列表

输入

>>> [triple(x) for x in range(5)]

打印三重

输出

[0, 3, 6, 9, 12]

列表理解和 for 循环之间的区别

遍历列表的常用方法是使用 for 循环。 但是,列表推导式是一种更有效的遍历列表的方法,因为它可以让您用更少的代码行来执行任务。

这是一个示例来说明差异。 我们将从一个空列表开始并对其进行修改以使其成为偶数列表:

输入

# 创建空列表

旧列表 = []

# 使用 for 循环创建新列表

对于范围内的 x (5):

old_list.append(x*2)

打印 old_list

输出

[0, 2, 4, 6, 8]

如您所见,for 循环要求您使用 append 函数来创建新列表。 您还必须先创建一个空列表,以便可以使用循环对其进行修改。 但是,使用列表理解,您不必使用其他函数,因为您可以使用一行代码完成任务:

输入

# 使用列表推导创建集合

old_list = [x*2 for x in range(5)]

打印 old_list

输出:

[0, 2, 4, 6, 8]

由于列表推导占用的空间和代码更少,因此与使用 for 循环相比,它还需要更少的计算能力。 这在处理大型程序时是有益的,因为当代码很长时,效率成为一个关键问题。

然而,当你使用列表推导时,你应该避免在一行中使用过长的推导。 否则,代码将不会保持用户友好,并且与其他开发人员共享您的工作可能会非常具有挑战性。 请记住,您将每个列表推导重写为一个 for 循环,但您不能将每个 for 循环都重写为一个列表推导。

列表理解是这种编程语言中存在的众多 Python 理解功能之一。 另一个非常流行的理解功能是字典理解:

Python中的字典理解是什么?

字典理解,顾名思义,允许您在 Python 中创建字典。 字典理解的语法是:

{k:v for (k,v) in iterable}

这里,k 代表 key,v 代表 value。

让我们在工作中看到它。 在下面的示例中,我们将创建两个列表并使用字典推导从它们生成字典:

输入:

# 使用 Python 展示字典理解

# 创建两个列表来表示键和值

键 = [1, 2, 3, 4, 5]

值 = ['a', 'b', 'c' 'd', 'e']

# 实现字典理解

new_dict = { k:v for (k,v) in zip(keys, values)}

打印新字典

输出:

{1:'a',2:'b',3:'c',4:'d'。 5:'e'}

字典理解使得在 Python 中创建字典变得非常容易。 但是,您也可以使用列表推导来生成字典。 在以下示例中,我们将使用列表推导并创建一个字典:

输入:

new_dict = {x: x*2 for x in [5, 4, 3, 2, 1]}

打印新字典

输出:

{5:10、4:8、3:6、2:4、1:2}

成为 Python 专家

列表理解是 Python 中存在的众多功能之一。 它是一种高度通用且有用的编程语言。 此外,Python 的语法也很容易理解,需要花点时间才能习惯。 除了这些好处之外,Python 还为其用户提供了许多库。

它拥有一个蓬勃发展的开发人员和程序员社区,他们定期将新库添加到其收藏中。 Python 可用的众多库和函数使其在软件开发、数据科学、机器学习等不同领域非常有用。

如果你对学习 Python 感兴趣,你应该在你想进入的领域的上下文中学习它。 此外,招聘人员总是寻找该领域的认证专业人士,因为它可以向他们保证候选人的专业知识。

由于这些原因,如果您有兴趣从事这项技能的职业,最好参加 Python 课程。 班加罗尔国际信息技术学院通过 upGrad 提供软件开发执行 PG 计划,非常适合那些想成为这种编程语言专家并追求技术职业的人。 本课程将为您提供一种结构良好的方式来学习 Python 和其他趋势技术,以帮助您进入该行业,成为一名准备好工作的专业人士。

upGrad 在 85 多个国家/地区拥有超过 40,000 名付费学习者。 加入该计划还可以让您通过 upGrad 庞大的学习者基础建立国际网络。 软件开发执行 PG 课程是一个持续 13 个月的在线课程。 它只需要每周 15 小时的时间投入。

该计划提供六个专业可供选择

  • 网络安全
  • 开发运维
  • 云计算
  • 大数据
  • 区块链开发
  • 全栈开发

除了这些优势之外,upGrad 还通过该计划提供 360 度的职业帮助,让您轻松开启职业生涯。 您可以在此处了解有关该课程的更多信息:软件开发执行 PG 计划

结论

您可以先尝试使用简单列表的列表推导,然后再使用此功能的更复杂的应用程序。 列表理解是 Python 编程灵活和健壮的一个例子。

您如何看待列表理解? 你会如何在你的程序中使用它?

Python 中的列表推导有什么作用?

列表理解 Python 允许您高效地创建列表,并且只使用一行代码。 它是 Python 中最强大的功能之一。

什么是字典理解?

字典理解允许您为两个列表创建字典。 它使用键和值来创建所需的字典。

列表理解比 for 循环更好吗?

是的,在大多数情况下,列表理解是创建列表的更好方法。 与 for 循环相比,它需要更少的代码、时间和计算能力来生成列表。