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

比如:

1 >>> range(5)
2 [01234]
3 >>> range(1,5)
4 [1234]
5 >>> range(0,6,2)
6 [024]

xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。

01 >>> xrange(5)
02 xrange(5)
03 >>> list(xrange(5))
04 [01234]
05 >>> xrange(1,5)
06 xrange(15)
07 >>> list(xrange(1,5))
08 [1234]
09 >>> xrange(0,6,2)
10 xrange(062)
11 >>> list(xrange(0,6,2))
12 [024]

由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。

xrange 和 range 这两个基本上都是在循环的时候用。

1 for in range(0100):
2     print i
3  
4 for in xrange(0100):
5     print i

这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:

1 = range(0,100)
2 print type(a)
3 print a
4 print a[0], a[1]

输出结果:

1 <type 'list'>
2 [012345678910111213141516171819,202122232425262728293031323334353637,383940414243444546474849505152535455,565758596061626364656667686970717273,747576777879808182838485868788899091,9293949596979899]
3 0 1

而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:

1 = xrange(0,100)
2 print type(a)
3 print a
4 print a[0], a[1]

输出结果:

1 <type 'xrange'>
2 xrange(100)
3 0 1
  • 所以xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表。

Python中range和xrange函数的区别相关推荐

  1. Python中 range 和xrange的详细区别

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

  2. python中range和xrange的区别_ZH奶酪:Python中range和xrange的区别

    直观说明:http://ciniao.me/article.php?id=17 原因分析:http://blog.csdn.net/liangliyin/article/details/5980505 ...

  3. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  4. 【Python】Python中str()和repr()函数的区别

    作用 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 参考文章:Python 中 str() 和 repr() 函数的 ...

  5. python中range和xrange的区别_python中range和xrange的区别

    range()是Python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列.xrange也有相同的功能, 今天来看下它们之间的不同. range 函数说明:range([start,] s ...

  6. python中range()函数

    python中range函数用法: [range()]函数可创建一个整数列表,一般用在for循环中,函数语法为[range(start, stop[, step])],其中start是开始计数,sto ...

  7. Python中range与xrange的区别

    文档中对range与xrange的介绍如下: range([start], stop[,step]) This is a versatile function to create lists cont ...

  8. Python中range和xrange的区别

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

  9. Python中range和xrange有何区别

    range()是Python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列.xrange也有相同的功能, 今天来看下它们之间的不同. range 函数说明:range([start,] s ...

最新文章

  1. jQuery的jquery-1.10.2.min.map触发404(未找到)
  2. php 入口文件引入取别名,php命名空间别名/导入
  3. #pragma once与#ifndef #define ...#endif的区别
  4. Java程序员必备的10个大数据框架
  5. initramfs下启动linux_和菜鸟一起学linux之initramfs方式启动
  6. 【STM32】FreeRTOS列表和列表项详解
  7. 程序员喝酒文化 (转贴)
  8. 在docker容器中安装ifconfig、ping等工具
  9. bzoj 3670: [Noi2014]动物园
  10. 编译x264出现错误:No working C compiler found.
  11. Docker仓库介绍和镜像加速器
  12. 上海提取公积金所需材料
  13. Linux管道命令及管道相关命令(详细)
  14. 关于C语言中的宏的一点点讨论
  15. 2022-2028全球与中国硅片清洗设备市场现状及未来发展趋势
  16. 国标GB28181(EasyGBS)/RTSP/HIKSDK/EHOME协议视频智能分析平台EasyCVR人脸识别智能分析功能拓展
  17. 学点编码知识又不会死:Unicode的流言终结者和编码大揭秘
  18. 自己的价值=有你的世界-没有你的世界
  19. 类和“对象” 以及 面向对象的三大特点
  20. Android wpa_supplicant源码分析---nl80211内核通信Generic Netlink

热门文章

  1. Java ——MongDB 插入数据、 模糊查询、in查询
  2. 煤柱群下重复开采覆岩与地表移动变形数值模拟研究_kaic
  3. Hammer.js 手势事件
  4. android 开源聊天控件,聊天IM的时间戳显示规则
  5. 天堂还是地狱!美国大学不是你想象的那样!道翰天琼认知智能API接口平台为您揭秘。
  6. linux中crontab表达式中日期和星期使用实测
  7. php二次开发知识,Discuz!二次开发基本知识
  8. 笔记本电脑录屏快捷键是什么?这个方法需要牢记
  9. 【模拟赛】卷王(构造)
  10. Handler post中run()方法与handleMessage()方法的调用原理