Learning Python 018 Python2 和 Python3 中 range()函数的使用

来源:互联网 发布:rsyslog windows 编辑:程序博客网 时间:2024/06/10 22:46

  • 使用的电脑系统:Windows 10 64位
  • 使用的开发集成环境:PyCharm 2016.1.4
  • 使用的Python的版本:python 2.7.10 和 python 3.5.0

range() 函数

  • Python2中:用来创建一个列表(list)。
  • Python3中:用来创建一个可以生成list或者tuple的生成器。

Python2 range()函数 知识点

Python2 中的range() 函数可以生成一个list。(分配内存空间)

a = range(10)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]b = range(4,10)# [4, 5, 6, 7, 8, 9]

Python2 中的xrange()函数不是生成一个list,而是生成一个生成器,不分配内存。

a = xrange(10)# xrange(10)b = list(xrange(10))# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]c = tuple(xrange(10))# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

Python3 range()函数 知识点


a = range(10)# range(0, 10)

输出:(打印出来的不是一个列表,而是一个生成器)。

Python3 选择这样做的原因:可以节约内存空间,详情请参考这篇博客:Python2和Python3的内存释放。

Python3中的range()函数的功能和Python2中的xrange()函数一样,所以在Python3中没有xrange()函数。


要想生成list或者tuple,这样做:

a = list(range(10))# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]b = list(range(4,10))# [4, 5, 6, 7, 8, 9]a = tuple(range(10))# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)b = tuple(range(4,10))# (4, 5, 6, 7, 8, 9)

range()函数的使用

下面这段代码在Python2 和 Python3中得到的运行结果都是一样的。

for i in range(10):    print(i)

输出:

0123456789

运行结果是一样的,但是运行的原理不同:

  • Python2:在第一次执行 range(10),就生成了一个[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]列表。
  • Python3:在每次执行range(10)时,生成一个元素i

请访问:http://www.aobosir.com/

0 0
原创粉丝点击