Python之列表推导式

简介:

列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。

它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。

列表推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。

例如:

[x for x in range(1, 11) if x % 2 == 0]
# result: [2, 4, 6, 8, 10]

执行顺序则为:

for x in range(1, 11)
	if x % 2 == 0
		x
使用场景:
1.除了上述例子外,x可以是一个表达式:
# 返回1-100之间偶数的平方作为一个列表
>>> [x*x for x in range(1,100) if x % 2 == 0]
result:
[4, 16, 36, 64, 100, 144, 196, 256, 324, 400, 484, 576, 676, 784, 900, 1024, 1156, 1296, 1444, 1600, 1764, 1936, 2116, 2304, 2500, 2704, 2916, 3136, 3364, 3600, 3844, 4096, 4356, 4624, 4900, 5184, 5476, 5776, 6084, 6400, 6724, 7056, 7396, 7744, 8100, 8464, 8836, 9216, 9604]

其中x*x作为一个表达式在此。仅仅是想说明使用自由!

2.可以有两个(多个)for循环及两个(多个)变量
# x在取值范围内与y的值两两组合,返回一个以列表为元素的列表
>>> [[x,y] for x in range(1, 3) for y in range(4, 6)]
result: [[1, 4], [1, 5], [2, 4], [2, 5]]

过程

  • x为1时,y第一次取4,组合为[1, 4]列表append到总列表中
  • x=1,y=5;组合为[1, 5],append到[1,4]之后
  • 以此类推
3.加工函数
>>> [[str(x),x*x] for x in range(1,10) if x % 2 == 0]
[['2', 4], ['4', 16], ['6', 36], ['8', 64]]
4.嵌套遍历双重结构
>>> list = [[1,2,3], [4,5,6], [7,8,9]]
>>> [x for y in list for x in y]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我姥爷是校长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值