Python基础-列表生成式

在生成具有某些特征的数据的列表时,如果用之前介绍的方法,会很繁琐。

一个优雅美丽的方法是列表生成式(List Comprehensions)。

举个栗子:

a=[1,2,3,4,5,6,7,8,9,10]

b=[x for x in a if x%2==0]

b

[2,4,6,8]

c=[x*x for x in a]

c

[1,2,9,16,25,36,49,64,81,100]

还可以使用两层或以上循环:

A,B,C的全排列

a=[x+y+z for x in 'ABC' for y in 'ABC' for z in 'ABC' if x!=y and x!=z and y!=z]

a

['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA']


列表生成式不仅适用与列表,还可以用来生成字典或集合。


total = sum([x**2 for x in values if x <= 10])

这个例子中,Python会生成这个列表,然后在将它放到垃圾回收机制中(因为没有变量指向它),这毫无疑问是种浪费。

因此,可以使用产生式表达式来解决这个问题:

total = sum(x**2 for x in values if x <= 10)

两者的效果一样,但是后者更加高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值