effective python
来源:互联网 发布:安卓壁纸软件 编辑:程序博客网 时间:2024/05/19 09:42
尽量用enumerate取代range
迭代列表时,如果还想知道元素在列表中的索引,一种方法是用range,
另一种就是enumerate:
for index,value in enumerate(lista): print index,value;
enumerate可以把各种迭代器包装成生成器(generator),生成器每次产生一对输出值,下标和相应元素,和其他迭代器不同的是,其他的如list是直接把所有数据生成好,一次性地返回整个列表,就会占用较大地内存。
还可以直接指定enumerate函数开始计数时所用的值(如从1开始):
for index,value in enumerate(lista,1): print index,value;
用zip函数同时遍历两个及以上迭代器
python3中的zip函数可以把两个或两个以上的迭代器封装成生成器。即如果想同时遍历多个迭代器时,可以使用zip:
for name,count in zip(list1,list2): print(name,count)
当列表长度不同时,zip函数当其中一个列表迭代完后,就会停止。
用生成器表达式来改写数据量较大的列表推导
列表推导是放在[ ]中的,而生成器表达式放在()中,两者的区别在于,生成器表达式求值时会返回一个生成器,而不是立即求出所有的值,这样就不会占用太多内存。使用内置的next函数来输出下一个值。同时generator也可以像列表那样循环输出值,这里是隐式调用了next()。
it = (len(x) for x in list)print(next(it))##像列表一样使用for i in it: print(i);
考虑用生成器来改写直接返回列表地函数
直接返回列表,在列表数据量较小时还可以,当数据量较大时,将消耗大量的内存,
阅读全文
0 0
- Effective-Python
- effective python
- Python Effective Programming - Intro
- Effective Python 中文版
- Effective Python 第一章回顾
- python book recommend: effective python
- 《Effective python》第一章节读后感
- Effective Python 第二章(一)
- effective
- 启动我自己的<Effective Python>系列文章
- 《Effective Python 编写高质量Python代码的59个有效方法》读书笔记
- Effective Python:编写高质量Python代码的59个有效方法的学习笔记
- effective与more effective
- Effective Python学习笔记(一) ——辅助类的使用
- Effective TensorFlow Chapter 9: TensorFlow模型原型的设计和利用python ops的高级可视化
- Effective C++
- Effective C#
- Effective C#
- 160个破解练习之CrackMe 006
- JS与JQ图片的预加载与懒加载
- java眼中的C++
- Ubuntu16.04 安装字体教程
- 我们也说说Android.mk(2)-函数进阶教程
- effective python
- 错误:UnboundLocalError: local variable 'xxx' referenced before assignment
- 启动Service的时候报错unable to install breakpoint in
- 欢迎使用CSDN-markdown编辑器
- HTML和XHTML的区别
- 微信分享朋友,朋友圈,qq
- 自学OPENCV+PYTHON+MACOS-X(1)
- 关于ajax跨域问题
- LeetCode||56. Merge Intervals