Python学习笔记:列表推导式List Comprehension

本篇参考官方文档: The PythonTutorial:5.Data Structures

列表推导式其实很简单,看一遍官方文档就可以了。

列表推导式提供了一个构造列表的简介的方法。通常的用途有制作一个新的列表,这个列表的每一个元素都是把一个操作作用于另一个序列或迭代器得到的;或者制作一个满足某些条件的子序列。
例如,加入我们想制作一个平凡列表,像:

>>> squares = []
>>> for x in range(10):
...     squares.append(x**2)
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

我们可以这样得到一样的结果:

squares = [x**2 for x in range(10)]

短短几句话就把列表推导的目的说明白了,还举了一个简单的例子。我们继续看:

一个列表推导式由括号组成,括号里包含一个表达式,这个表达式后面跟着个for,其后可能有0个或多个forif。一个新的列表就这样产生了:在forif的语境(context)下计算那个表达式。比如:

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

跟这个是等效的:

>>> combs = []
>>> for x in [1,2,3]:
...     for y in [3,1,4]:
...         if x != y:
...             combs.append((x, y))
...
>>> combs
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值