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

liftword4个月前 (02-28)技术文章22

列表推导式(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 数组反方法完整指南_python数组取反

曾经需要在 Python 中翻转列表吗?无论您是以相反的顺序对数据进行排序、实施算法还是处理用户输入,知道如何反转数组都是一项基本技能。用于反转列表的内置方法reverse() 方法:就地列表反转'r...

10个NumPy数组操作的高级技巧_numpy数组运算

在数据处理和科学计算的广阔世界里,NumPy是你的第一站。今天,我们将一起探索NumPy数组操作的10个高级技巧,让你的数据处理技能迅速升级。无论你是数据分析新手还是想要深化理解的老手,这篇文章都是为...

Numpy零基础vip精讲课程(下篇)_numpy进阶educoder

1. 性能提升技巧1.1 向量化操作 vs Python 循环Numpy 的向量化操作比 Python 循环快数十甚至数百倍。import numpy as np import time #...

精通Python多进程(Multiprocessing)提升性能:8 个进阶层次解析

多进程编程要求深入理解进程管理、竞争条件和锁机制等系统级概念。尽管这些内容较为复杂,但掌握多进程能够让你充分利用现代多核 CPU,编写高效的 Python 应用。接下来将通过 8 个渐进层次的实例,逐...

Python 技巧讲解:numpy.array 操作使用简单总结(含示例代码)

今天为大家带来的内容是:Python 技巧讲解:numpy.array 操作使用简单总结(含示例代码)文章内容主要介绍了numpy.array 操作使用简单总结,文中通过示例代码介绍的非常详细,对大家...