我是靠谱客的博主 还单身缘分,最近开发中收集的这篇文章主要介绍python的推导式编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近看了一篇文章一行python代码,刚一开始看,惊呆了,python竟然可以这样写,大牛绝逼是大牛。事后仔细了解了一下代码和作者,作者的确是大牛,但发现一行python代码并不是多么神秘,反而很简单,就是python的推导式。
我先写一个简单地列表推导式:

[x for x in range(5)]

结果:

[0,1,2,3,4]

还可以用表达式代替x的位置:

[x*x for x in range(5)]

结果:

[0,1,4,9,16]

函数也可以:

a=lambda x:x*x
[a(x) for x in range(5)]

结果:

[0,1,4,9,16]

通过上面的例子,我们可以发现列表的推导式就是起到了for循环的作用。其实推导式还可以有更大的作用,就是可以用if语句做判断,请看线面的例子:

[x for x in range(5) if x!=3]

结果:

[0,1,2,4]

像上面的例子中if语句是在for语句之后的,其实还可以放在for之前,但是,if语句必须要有else分支,也就是说放在外面是先判断再进行运算,即最后的列表长度不一定是5,如果放在前面,最后列表的长度必须是5.

[x if x!=3 else 0 for x in range(5)]

结果:

[0,1,2,0,4]

经过简单介绍,我们发现利用python的推导式可以完全替代for循环的简单功能。除此之外,我们平时还会用到for循环的嵌套,利用列表的推导式也能实现这一功能。

['%d %d'%(x,y) for x in range(2) for y in range(2)]

结果:

['0 0','0 1','1 0','1 1']

上面的例子虽然也实现了for语句的嵌套功能,但是,你仔细看输出会发现x在外部,y在内部,用的时候要注意。如果想写的符合我们一般的逻辑,即后面的循环在外部,前面的循环在内部,可以这样写:

[['%d %d'%(x,y) for x in range(2)] for y in range(2)]

结果:

[['0 0','1 0'],['0 1','1 1']]

以上就是python中列表推导式的应用和我自己使用的经验,除此之外,推导式还可以在字典和集合中使用,详情见Python中的推导式使用详解

最后

以上就是还单身缘分为你收集整理的python的推导式编程的全部内容,希望文章能够帮你解决python的推导式编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部