详解Python中的列表推导式_python,列表

liftword2个月前 (02-28)技术文章12

列表推导式(list comprehension)或者称为列表解析式,是基于现有的列表做一些操作,从而快速创建新列表的一种方法。它的工作方式类似于for循环,是一种功能强大、操作优雅的方法。在实际的项目中很有用,推荐。

书写形式:[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

如果在我们刚接触 Python 时,列表推导式可能看起来比较复杂,但是了解后会发现它非常好用。

优点:

  • 可读性强
  • 代码量少
  • 执行速度很快

对于列表推导式,我们可以从列表中选择具体的元素,并做一些操作和判断,从而创建新的列表。值得注意的是,我们甚至能使用 Pandas Series 或 NumPy ndarray 进行列表推导操作。

列表推导式代码表现形式

如果我们有一个列表,并希望抽取列表中的元素,那么最标准的方法是使用 Python 循环,但是我们也可以直接通过列表推导式,它只需一行代码就能搞定所有操作。当然,抽取列表元素的前提是,我们要理解列表是一种可迭代对象,它允许依次读取不同的元素。

list1 = [1,2,3,4,5,6,7,8,9]
print [x**2 for x in list1]
#[1, 4, 9, 16, 25, 36, 49, 64, 81]

条件语句

这样看起来列表推导式也没什么大不了,但别忘了它还能对元素做进一步操作,例如加个条件语句。在标准的列表循环中,我们的条件语句如下所示会加到 for 循环中。

result = []
for x in list1:
if x>5:
result.append(x**2)

在列表推导式中,我们可以将条件加到里面,用稍微长一点的单行代码完成整个流程。上面代码块可以用列表推导式等价地表达为:

result = [x**2 for x in list if x>5]

另外非常重要的一点是,列表推导式的速度非常快(比一般的循环要快50%以上)。

最后,如果你使用过列表推导式创建新的列表,那么你最好一直使用它,因为我们没有理由再使用标准 Python 循环,其实只要明晰了基本概念,列表推导式还是非常容易使用的。

测试和扩展Demo

列表推导式的对象是元组

相同元素个数的元组 的列表推导式操作

列表推导式的表达式是函数

字典推导式

总结:本文详细介绍了Python中的列表推导式的构建方法,在数据处理方面这种方法很有用,简洁,高效也比较灵活,推荐。

相关文章

Golang 3、数组_golang new 数组

在 Go 语言中,数组是一种固定长度的、存储相同类型元素的数据结构。1.数组的基本概念固定长度:数组的长度在定义时就确定,不能动态改变。相同类型:数组中的所有元素必须是同一类型。索引访问:通过索引(从...

Python -numpy 数组的创建_numpy如何创建数组

用numpy创建1,2,3维数组的方法:import numpy as np a = np.array([1,2,3]) a1 = np.array([[1,2],[3,4],[5,6]]) a2 =...

Bash Shell脚本中的数组使用实例_linux shell脚本 数组

数组是一个包含多个值的变量,这些值可以是相同类型或不同类型。没有数组大小限制,也没有要求成员变量被连续索引或连续分配的限制。数组索引从0开始。1.声明一个数组并赋值在bash中,使用以下格式的变量时会...

Python 数据类型 - 数组_python数组的应用

Python 数据类型 - 数组在本节中,你将学习如何在 Python 中创建和访问数组的元素。数组是相同数据类型的元素的集合。数组和列表之间的主要区别是列表可以具有不同数据类型的元素。在 Pytho...

python实现数组操作代码_python数组操作方法

Python是一种功能强大的编程语言,尤其在处理数组和列表等数据结构时非常出色。它提供了许多有用的工具和库,使得数组操作变得轻松和高效。本文将详细介绍Python中实现数组操作的代码,并给出一些示例。...

2025-01-19:数组中的峰值。用go语言,在一个整数数组 nums 中,若

2025-01-19:数组中的峰值。用go语言,在一个整数数组 nums 中,若某个元素大于其左右相邻的元素,则称该元素为“峰值”元素。你会得到一个整数数组 nums 和一个二维数组 queries。...