公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!

小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。

废话不多说,开始今天的题目:

问:说说Python中xrange和range的区别?

答:range()和xrange()都是在循环中使用,输出结果一样。

range()返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)。

xrange()则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少。因而性能非常好,所以尽量用xrange吧。

在python3 中没有xrange,只有range。range和python2 中的xrange()一样。

下面分别来说说这两者的用法:

1、range()

range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。

起点是start,终点是stop,但不包含stop,公差是step。start和step是可选项,没给出start时,从0开始;没给出step时,默认公差为1。

range示例:>>>range(10) #起点是0,终点是10,但是不包括10[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>>range(1,10) #起点是1,终点是10,但是不包括10[1, 2, 3, 4, 5, 6, 7, 8, 9]>>>range(1,10,2) #起点是1,终点是10,步长为2[1, 3, 5, 7, 9]>>>range(0,-10,-1) #起点是1,终点是10,步长为-1[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]>>>range(0,-10,1) #起点是0,终点是-10,终点为负数时,步长只能为负数,否则返回空[]>>>range(0) #起点是0,返回空列表[]>>>range(1,0) #起点大于终点,返回空列表[]

2、xrange()

xrange与range类似,只是返回的是一个"xrange object"生成器对象,而非数组list。

xrange示例:>>>xrange(6)xrange(6) # 注意:这里输出的和range就不同喽>>>list(xrange(6))[0, 1, 2, 3, 4, 5]>>>xrange(1, 6)xrange(1, 6)>>>list(xrange(1, 6))[1, 2, 3, 4, 5]>>>xrange(0,6,2)xrange(0, 6, 2)>>>list(xrange(0, 6, 2))[0, 2, 4]这两个基本上都是在循环的时候用:for i in range(0, 100):  print ifor i in xrange(0, 100):  print i

再一次提醒:xrange()函数在Python3中已经取消。在python3中range()这种实现被移除了,保留了xrange()的实现,且将xrange()重新命名成range()。所以Python3不能使用xrange(),只能使用range()。

如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!

更多题目:

关注小猿公众号,每天学习一道题

python2中xrange比range优点_【Python面试】 说说Python中xrange和range的区别?相关推荐

  1. python中一个范围怎么表示_我应该如何处理Python中的包含范围?

    我在一个领域工作,在这个领域中,范围通常被包括在内地描述.我有人类可读的描述,例如from A to B,它表示包含两个端点的范围,例如from 2 to 4表示2, 3, 4. 在Python代码中 ...

  2. python 中split函数的应用_举例详解Python中的split()函数的使用方法

    函数:split() python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(li ...

  3. 属于python语言中合法的二进制整数是_以下选项属于 Python 整数类型的是( )

    [单选题]3*1**3 表达式输出结果为________ [多选题]以下的布尔代数运算正确的是( ) [单选题]下列________不是Python的数据类型. [单选题]下列不是Python语言关键 ...

  4. python中换行符怎么写_语法 - 如何在Python中执行换行符(换行符)?

    语法 - 如何在Python中执行换行符(换行符)? 我有一长串代码,我希望在多行之间分解. 我使用什么,语法是什么? 例如,添加一串字符串, e = 'a' + 'b' + 'c' + 'd' 并将 ...

  5. python中构造方法可以被继承吗_构造函数是在python中继承的吗

    我正在研究麻省理工学院6.00开放式课程的一个习题集,我有以下代码...在class Trigger(object): def evaluate(self, story): ""& ...

  6. python面试常见问题-Python面试中最常见的25个问题

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. Python是一个面向对象的解释型的交互式高级脚本语言.Python被设计成一种高可读性的语言,因为它大量 ...

  7. python面试常见问题-Python面试中常见的40个问题

    1)什么是Python?使用Python有什么好处? Python是一种编程语言,包含对象,模块,线程,异常和自动内存管理.Python的好处在于它简单易用,可移植,可扩展,内置数据结构,并且它是一个 ...

  8. python的特点和优点-【Python面试】 Python 的特点和优点是什么?

    最近公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开 ...

  9. vue中data定义数字类型_[乐意黎原创] Vue中data定义的三种方式和区别

    在 Vue中,定义data时,经常有好几种写法,一不小心会混淆,这里彻底详述一下,以便记分清 . 一.在vue中,定义data可以有三种写法. 1. 第一种写法,data是一个对象. var app ...

最新文章

  1. 【OpenCV 4开发详解】图像LUT查找表
  2. 环境变量、用户变量、系统变量
  3. [optee]-opteeTA启动的过程(open_ta的过程)
  4. Java 枚举:实现接口
  5. eclipse html自动编译,eclipse不自动编译解决方法 不编译要怎么办
  6. php数组基础知识,PHP 数组基础知识小结
  7. 如何查看服务器gpu性能,ubuntu服务器查看GPU和CPU实时使用情况
  8. 自定义拦截器,拦截到了某个请求就返回给前端一个JSON串
  9. 线程池----合理的设置大小
  10. sqlu8多阶级层次bom_心理学:有这二种“长相”的男人,往往层次很高,女人可多留意...
  11. ajax-page局部刷新分页实例
  12. 总结C#语言命名规范 (转)
  13. 软件测试人员工作计划怎么写,软件测试个人工作计划.docx
  14. c 语言全局变量的声明及用法,《c语言全局变量的用法》
  15. win10系统怎么把语言栏弄回去
  16. css手册.chm + W3CSchool.chm下载
  17. 架构漫谈(一):什么是架构? -王概凯 - 转
  18. 【论文笔记_对比学习_2021】CONTRASTIVE LEARNING WITH HARD NEGATIVE SAMPLES
  19. Android/Java中okhttp用法介绍
  20. Nginx(二)配置虚拟主机

热门文章

  1. c winform 上传文件到mysql_C# winform DevExpress上传图片到数据库【转】
  2. netfilter que_QUE的完整形式是什么?
  3. UNDO Tablespace
  4. 如何选择c语言学习书籍
  5. Python openpyxl打开有公式的excel表取值错误的解决办法,Python openpyxl获取excel有公式的单元格的数值错误,Python操作excel(.xlsx)封装类
  6. QT5快速转换路径(/斜杠与\反斜杠转换)
  7. pandas无法打开.xlsx文件,xlrd.biffh.XLRDError: Excel xlsx file; not supported
  8. 简单的ajax上传商品功能使用SevletFileUpload和FormData
  9. 设计有三个窗口的框架结构网页_技术周刊丨钢框架结构直接分析设计与传统设计方法对比研究——恒荷载作用结果对比...
  10. vim关闭下一行也是注释_在Vim中注释/取消注释行的快速方法是什么?