学会用列表生成式写极简代码

一个简单的列表生成式

在列表生成式中,条件操作写在最前面,后边加上 for 循环就可以获取一个新的 list

>>> n = [x**x for x in range(1, 11)]
>>> print(n)
[1, 4, 27, 256, 3125, 46656, 823543, 16777216, 387420489, 10000000000]

加上条件筛选的列表生成式

条件判断加载尾部,只获取符合条件的 list 成员(执行x**x之前)的结果

>>> n = [x**x for x in range(1, 11) if x < 5]
>>> print(n)
[1, 4, 27, 256]

两层循环的列表生成式

两层循环一一组合,n 的长度可见为 5 × 10 = 50 就是一个双重 for 循环

>>> n = [a+b for a in range(1, 6) for b in range(1, 11)]
>>> print(n)
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8,
 9, 10, 11, 12, 13, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 6, 7, 8, 9, 10, 11, 12, 1
3, 14, 15]
>>> len(n)
50

加上方法的列表生成式

>>> n = [str(a) for a in range(1, 6)]
>>> print(n)
['1', '2', '3', '4', '5']
>>> def sum(x, y):
...     return x+y
... 
>>> n = [sum(a,b) for a in range(1, 6) for b in range(1, 6)]
>>> print(n)
[2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8, 5, 6, 7, 8, 9, 6, 7, 8, 9, 10]
>>> len(n)
25

总结

列表生成式是实现极简代码的一种重要途径,如何写出优美易读的Python程序这是值得我们思考的一件事情

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值