笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册
查看: 6072|回复: 4

[已经解决] 为什么range(1,10)函数没有返回list

[复制链接]

新手上路

Rank: 1

积分
3
发表于 2022-3-10 08:13:01 | 显示全部楼层 |阅读模式
在许多资料中说的range()函数返回的是list数据集,例如range(1,10)应该返回【1,2,3,4,5,6,7,8,9,10】
但我在测试:
>>>range(1,10)
range(1,10)
>>>

但我用下面代码测试能能够确认返回1至是10的list数据
效果:
>>>for i in range(1,10):print(i)
...
1
2
3
4
5
6
7
8
9
>>>
时光碎片乱了夏已获得悬赏 10 C币

最佳答案

1)range(1,10)没有返回list,如果需要返回list用:list(range(1,10)) 2)range(a,b)返回数据返回a<=n<b,返回个数为b-a。 3)用户list=range(1,10),list是<range 'class'> 4)range(1,10)[8]返回9 ...
回复

使用道具 举报

新手上路

Rank: 1

积分
2
发表于 2022-3-10 08:13:15 | 显示全部楼层
range(1, 10)返回的是 [1, 2, 3, 4, 5, 6, 7, 8, 9],不会把10也包括进去的
回复

使用道具 举报

新手上路

Rank: 1

积分
2
发表于 2022-3-10 08:13:25 | 显示全部楼层
range不包括上限
回复

使用道具 举报

新手上路

Rank: 1

积分
2
发表于 2022-3-10 08:13:38 | 显示全部楼层
1)range(1,10)没有返回list,如果需要返回list用:list(range(1,10))
2)range(a,b)返回数据返回a<=n<b,返回个数为b-a。
3)用户list=range(1,10),list是<range 'class'>
4)range(1,10)[8]返回9
回复

使用道具 举报

新手上路

Rank: 1

积分
2
发表于 2022-3-10 08:14:38 | 显示全部楼层
1、range()返回的是一个可迭代的 range类对象,并不是返回list啊,你是从哪儿听说返回的是list的啊?
  1. >>> a = range(1, 10)
  2. >>> type(a)
  3. <class 'range'> # 返回了一个可迭代的range类对象
  4. >>> list1 = []
  5. >>> type(list1)
  6. <class 'list'> # 只有当设定的是列表的时候,才会返回list类对象
复制代码

2、 range()返回的元素个数是b-a, 本来就是这样啊,有什么问题嘛?

3、首先,这里的list本身属于python的保留字之一,不要把保留字用作变量名!重复:不要把保留字用作变量名!再有,返回class 'range'的问题我第一个回答已经告诉你是怎么回事了,这里的list是一个可迭代的range类对象,不是列表!

4、计算机序列是从0开始算第一个元素的,所以range(1, 10)[8]当然就会返回 9 咯,因为第一个元素 1 在序列中的位置数是 0 啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 09:31 , Processed in 0.149216 second(s), 24 queries .

© 2001-2020

快速回复 返回顶部 返回列表