Python中range与xrange分别在什么情况下使用,pythonxrange,这两个该如何选择,性能上
Python中range与xrange分别在什么情况下使用,pythonxrange,这两个该如何选择,性能上
这两个该如何选择,性能上、优缺点各自如何呢?
普通程序选range,感觉可能会比较耗时的操作就使用xrange。
range(start, end, step) 会生成一个列表 [start, start+step, start+2*step, ..., end]
如果start与end的相差很大,那生成列表的时间会很长,而且数据量很大,占内存,生成之后,再迭代。
xrange(start, end, step) 则不会生成一个列表,迭代一次生成一个数,不会有内存方面影响。
在阅读的Q.yuhen的《Python 学习笔记》时无意中看到这到一段,我想能加答上这个问题,我直接切图转过来了:
xrange最后返回的是一个生成器
range是一个列表(python2.7)
我个人是喜欢xrange一点
可以Google range()和xrange()的实现区别.
如果range的数不大,使用range(); 反之xrange(). 至于数多大算大,我跟感觉走
Python3.x中已经只有range()了,但是对于Python的版本问题以及维护问题,你懂的.
楼上都是说xrange优点,我补充下缺点
1. python3没有xrange,如果python2迁移到3、或者要同时在2/3跑程序,就要注意。
2. xrange不支持切片,这个用起来可能不是很爽。
个人觉得,如果数据量不大,还是用range,如果数据大并且是版本2才考虑用xrange。
ps:两个都去了解,然后选择最合适自己需求的~~这个真的没有绝对~~
Python 3 只有 range,跟 Python 2 的 xrange 一个效果 ~~
补充一下 Python2的xrange不支持 slicing Python3 的 range 支持
编橙之家文章,
相关内容
- 请问Article表把主键暴露在URL中好吗?,articleurl,Django为每
- 求解决pip安装python库下载超时的有效方法,pippython,如题
- 用socket来搭建一个TCP的服务端啊,怎么才可以搭建?,
- 求python大牛帮看看这道简单的算法题如何巧解,python大
- Python表单是交给前端处理还是struts2处理好?,pythonst
- mysql重复数据表如何根据字段去重的问题,mysql重复数据
- Python什么方法可以避免重复抓取同一网页,python抓取
- Python Scrapy Unicode编码转换UTF-8问题,scrapyutf-8,关于Pyth
- 如何将大数据量的文本文件,按照条件完成多行合并的
- Python应该如何开发聊天模块,python开发模块,后台全py
评论关闭