详解Python中的列表推导式_python,列表
列表推导式(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中的列表推导式的构建方法,在数据处理方面这种方法很有用,简洁,高效也比较灵活,推荐。