python 列表表达式 功能大全

本文详述了Python列表推导式的使用,包括何时使用迭代、条件判断和嵌套循环,以及何时避免滥用列表推导式。强调了使用构造函数和生成器表达式的必要性,以优化内存效率。
摘要由CSDN通过智能技术生成

Python 列表推导式使用注意事项

Python 列表推导式并不是给初学者用的,因为它非常反直觉,甚至对于有其他编程语言背景的人也是如此。

我们接触到 List 的使用时,学习的内容都是零散的。所以我们缺少一个关于如何在各种各样的场景下使用 List 的知识体系。

本文提供了一些 List 的使用指南,尽可能涵盖各个方面。希望本文可以成为你的一站式实用手册。

使用建议

1.建议使用迭代的方式

使用 List 最基本的方式是以一个可迭代对象为基础,创建一个 List 对象,这个可迭代对象可以是任意可以迭代元素的Python对象。使用方法如下。

[expression for item in iterable]
复制代码

下面这段代码展示了一个使用列表相关技术创建 List 对象的例子。在这个例子中,我们定义了一个 Integer 列表,并基于这个对象创建了保存每个数字的平方数和立方数的 List 对象。

>>> # 创建一个 Integer 列表
>>> integers = [1, 2, 3, 4, 5, 6]
>>> # 创建平方数和立方数列表
>>> powers = [(x*x, pow(x, 3)) for x in integers]
>>> print(powers)
[(1, 1), (4, 8), (9, 27), (16, 64), (25, 125), (36, 216)]

复制代码

上面的例子把 List 对象当作迭代器使用。我们应该知道,许多类型的对象也是可迭代的,比如 List、Set、Dictionary 和 String 等等。其他数据类型,像 range、map、filter,以及 pandas 包中的 Series、DataFrame,都是可迭代的。下面的代码演示了某些对象的使用方法。

>>> # 使用 range 对象
>>> integer_range = range(5)
>>> [x*x for x in integer_range]
[0, 1, 4, 9, 16]
>>> # 使用 Series 对象 
>>> import pandas as pd
>>> pd_series = pd.Series(range(5))
>>> print(pd_series)
0    0
1    1
2    2
3    3
4    4
dtype: int64
>>> [x*x for x in pd_series]
[0, 1, 4, 9, 16]
复制代码

2.如果只需用到其中的某

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值