为什么[range(10)]和list(range(10))不一样

为什么[range10]和list[range10]不一样


今天在学习群里看到一个有意思的问题:为什么[range(10)]和list(range(10))不一样
首先我们来看下他们的打印结果

list1=list(range(10))
list2 = [range(10)]
print(list1)
print(list2)
'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[range(0, 10)]
'''

我们可以看到确实是两个不同的结果,那么为什么会这样呢,我们可以来打印两个数列的长度和类型看一下

list1=list(range(10))
list2 = [range(10)]
print(list1,len(list1),type(list1[0]))
print(list2,len(list2),type(list2[0]))
'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 10 <class 'int'>
[range(0, 10)] 1 <class 'range'>
'''

可以明显的看到,list1的长度是10,list2的长度是1,而且list1[0]的类型是int,list2[0]的类型是range,我记得之前有个脑筋急转弯,“把大象装进冰箱里面需要几步”,list1可以理解为把大象切成小块儿装入冰箱,list2是直接把大象装进冰箱,所以list1里面是10块儿大象,list里面是一头大象。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MIANHUA_007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值