关于列表的取值范围

关于列表的取值范围

老师,您好:

User.objects.all()[5:10]

这一段老师说是不包含前面的5,这句话我认为是错误的,因为列表都是包含左边不包含右边才对,在Python零基础入门的时候,老师说过是左闭右开,那么应该是包含5,不包含10才对,其实是从5到9才对,所以说我认为视频中老师的说法是错误的,对吧?这句话有必要修改一下,不然很让人误解

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好,

这里的用法有别于Python列表的应用,如同学所说,Python列表中list_1[5:10]左包含右不包含。

User.objects.all()[5:10]对应数据库中的查询,相当于LIMIT 5 OFFSET 5,偏移5条,从第6条开始查询,比如执行下面的代码,对应的查询语句如下

http://img1.sycdn.imooc.com//climg/5f940bce092c032507880363.jpg

http://img1.sycdn.imooc.com//climg/5f940c37091c0abb13970226.jpg

查询结果返回的user6、user7、user8、user9、user10这5个用户,与数据库中的内容是一致的,舍弃了前5条

http://img1.sycdn.imooc.com//climg/5f940c9409412c7d05280243.jpg

为同学的爱思考点赞,棒棒哒,祝学习愉快~~~


  • Kepler_ 提问者 #1
    这个取值是[5:10],那么也就是从第五条到第十条而,user1相当于索引0,而user10相当于索引9,那么不就是不包含索引为10不是吗?
    2020-10-24 19:24:56
  • 时间, 回复 提问者 Kepler_ #2
    同学,你好。同学的理解是对的,中括号中的5:10指的是列表中的下标,下标从0开始。祝学习愉快~~~~
    2020-10-25 09:51:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师