专栏名称: python
隔天更新python文章,我希望用我的努力换来劳动的成果帮助更多的人掌握一门技术,因此我要更加努力。
目录
相关文章推荐
Python爱好者社区  ·  蔚来汽车裁员约10%,20分钟完成裁员。。。 ·  2 天前  
Python爱好者社区  ·  为什么it外包永远在招人? ·  昨天  
Python爱好者社区  ·  154W,我入局了! ·  2 天前  
Python开发者  ·  刚刚,黄仁勋携 GB300 ... ·  3 天前  
Python爱好者社区  ·  yyds!《LLM书》PDF ·  3 天前  
51好读  ›  专栏  ›  python

纯干货-超级实用的python小技巧

python  · 公众号  · Python  · 2017-05-27 23:49

正文


链式比较操作


Python学习交流   643692991   群内每天更新相关资料

你可能认为它执行的过程先是: 1 ,返回 True ,然后再比较 True ,当然这么做也是返回 True ,比较表达式 True ,因为解释器会把 True 转换成 1 False 转换成 0 。但这里的链式比较解释器在内部并不是这样干的,它会把这种链式的比较操作转换成: 1 ,不信你可以看看最后一个例子。这样的链式操作本可以值得所有编程语言拥有,但是很遗憾

枚举


Python学习交流   643692991  群内每天更新相关资料

用enumerate包装一个可迭代对象,可以同时使用迭代项和索引,如果你不这么干的话,下面有一种比较麻烦的方法:

enumerate 还可以接收一个可选参数start,默认start等于0。 enumerate(list, start=1) ,这样index的起始值就是1

生成器对象

你可以把生成器对象赋值给x,意味着可以对x进行迭代操作:

它的好处就是不需要存储中间结果,也许你会使用(列表推倒式):


Python学习交流  643692991  群内每天更新相关资料

它比生成器对象能带来更快的速度。相对地,生成器更能节省内存开销,它的值是按需生成,不需要像列表推倒式一样把整个结果保存在内存中,同时它不能重新迭代,列表推倒式则不然。

iter()可接收callable参数

iter()内建函数接收的参数分为两种,第一种是:

参数collection必须是可迭代对象或者是序列 ,第二种是:

callable函数会一直被调用,直到它的返回结果等于sentinel,例如:


Python学习交流   643692991  群内每天更新相关资料

小心可变的默认参数

取而代之的是你应该使用一个标记值表示“没有指定”来替换可变值,如:


Python学习交流   643692991   群内每天更新相关资料

发送值到生成器函数在中

你可以:


Python学习交流   643692991   群内每天更新相关资料

如果你不喜欢使用空格缩进,那么可以使用C语言花括号{}定义函数:







请到「今天看啥」查看全文


推荐文章
Python爱好者社区  ·  蔚来汽车裁员约10%,20分钟完成裁员。。。
2 天前
Python爱好者社区  ·  为什么it外包永远在招人?
昨天
Python爱好者社区  ·  154W,我入局了!
2 天前
Python爱好者社区  ·  yyds!《LLM书》PDF
3 天前
摄影笔记  ·  摄友照片点评(11月合集)
8 年前
中国航务周刊  ·  以星高层调整,CEO易主,CFO辞职
8 年前
管理智慧  ·  《战狼2》:世界正在奖励认真的人
7 年前