2020-06-22 range()函数到底返回的是什么数据类型

2020-06-22  本文已影响0人  匿名老师

今天在python中执行下面代码:

range(0,5)

结果仍然返回

range(0,5)

type(range(0,5))查看一下,竟然是<class 'range'>

与我想的完全不一样,我以为应该返回的是列表[0,1,2,3,4]

是哪边出现了问题呢?

各种搜索网上的答案,最终得出如下答案:

原因:python的版本不同,返回的类型不同

在python 3.x版本中,range()函数返回的是一个个对应的整数,也就是迭代对象。

我们运行help(range)得到如下结果:

| range(stop) -> range object                       

|  range(start, stop[, step]) -> range object

|

|  Return an object that produces a sequence of integers from start (inclusive)

|  to stop (exclusive) by step.  range(i, j) produces i, i+1, i+2, ..., j-1.

|  start defaults to 0, and stop is omitted!  range(4) produces 0, 1, 2, 3.

|  These are exactly the valid indices for a list of 4 elements.

|  When step is given, it specifies the increment (or decrement).

前两行告诉我们,返回的是一个对象,类型为range

后面的内容告诉我们:

返回一个对象,该对象从一开始就生成一个整数序列从开头(包括开头)到结束(不包含)。即我们平常说的,包头不包尾。

例:range(i,j)产生整数 i,i+1,i+2,…,一直到j-1。

range(4)产生0、1、2、3。开头整数默认为0,结尾整数4不包含。这些正是4个元素列表的有效索引。

当给定步长时,它指定增量(或减量)。

如果我们想让它呈现出列表形式,如下即可

list(range(0,5))

结果如下:

[0, 1, 2, 3, 4]

在python 2.x版本中,range()函数返回的是列表。

在电脑中安装python2.x版本

直接运行

range(0,5)

结果如下:

[0, 1, 2, 3, 4]

总结:range()函数在python 2.x 中返回的是列表,而在python 3.x返回的是可迭代对象。

问题解决!

上一篇下一篇

猜你喜欢

热点阅读