Python 中的range(),以及列表切片方法


Posted in Python onJuly 02, 2018

range()函数配合循环一块使用很方便,今天来整理一下这个函数的主要用法,以及几个小例子

首先来看一下函数原型,非常简单:

range(start,end [,step])

或者连start都省略掉:

range(end)

其中,start表示开始点,end表示结束点,真正结束的位置是end的前一个值,step表示步长。

例如:

print(list(range(1,5)))
#list函数是将range的值列表化,这时候的输出为 1,2,3,4 (没有5!即不包括最后一个end的值)
print(list(range(1,5,2)))
#输出结果是 [1, 3] ,步长为2,而且小于5

如果只传入一个参数:

print(list(range(5)))
#输出结果是 [0, 1, 2, 3, 4] ,这时候默认从0开始

rang的这些使用,我们可以同列表的遍历结合起来,比如对一个列表进行遍历访问:

#首先我用一个range生成一个列表,其中包含0~9 10个元素
list1 =list(range(10))
# #使用range的方式进行遍历:
for i in range(len(list1)):
  print(list1[i])

#当然这种情况我们一般都是直接使用 for value in list1 就可以了
#如果使用切片,访问列表的一部分

for i in range(int(len(list1)/2)):
  print(list1[i])

#这样我们就可以得到列表中前一半元素,其他部分同理

有的时候我们还会用到一个列表的逆序,使用range可以这样:

list1 =list(range(10))
for i in range(len(list1)-1,0,-1):
  print(list1[i])
#注意这个地方开始的位置是len-1,因为我们使用的列表的下标,其实这里的使用与C语言是一致的,步长设置为-1
#就相当于我们在for循环的 i--了

使用循环的方式,我们可以在每次循环中对数据进行一些操作,但是如果仅仅是得到这些数据,我们可以利用列表的切片slide来做,切片的方式非常灵活,例如比较简单的:

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

从这里我们可以看出切片的使用方式与range大同小异,都是三个参数,分别控制开始,结束以及步长,在range中我们可以使用 -1 ,那么同理,在切片中,同样如此,对于每一个列表项,不仅仅有一个正向的序号,还有一个反向的序号,最后一个元素可以使用list1[-1]来表示,倒数第二个元素就是list1[-2]….:

print(list1[1:-1])
# 这里表示从第一个元素到最后一个元素

如果逆序输出的话:

print(list1[-1::-1])
#或者简记为:
print(list1[::-1])

接下来是我之前遇到的一个问题,如何在一个列表中保存A-Z或者Z-A?

list2 = []
for i in range(ord('A'),ord('A')+26):
  list2.append(chr(i))
print(list2)

list3 = [chr(ord('A')+x) for x in range(26)]
print(list3)

这两种方法都可以生成一个包含A-Z的列表,对于这个问题,如果使用过其他语言,首先可能会使用int(‘A')获取A的ASCII,但是在Python中却会报错,因为这里int()函数是默认基与十进制的,对于字母转化为数字,有函数ord可以使用,有字母转化回ASCII则可以使用chr()函数,第二种方式是使用了列表生成式的方式,写起来比较简单,除了这些方法之外,还可以使用map()函数对列表的每一个值进行处理,在此不再介绍。

以上这篇Python 中的range(),以及列表切片方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python读写ini文件的方法
May 28 Python
python获取外网ip地址的方法总结
Jul 02 Python
django框架如何集成celery进行开发
May 24 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
Python实现的多进程和多线程功能示例
May 29 Python
Python实现的txt文件去重功能示例
Jul 07 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
Python常见数据类型转换操作示例
May 08 Python
如何通过Django使用本地css/js文件
Jan 20 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 Python
Python机器学习之逻辑回归
May 11 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 #Python
分享vim python缩进等一些配置
Jul 02 #Python
实践Vim配置python开发环境
Jul 02 #Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 #Python
Django实现分页功能
Jul 02 #Python
详解python单元测试框架unittest
Jul 02 #Python
python中多层嵌套列表的拆分方法
Jul 02 #Python
You might like
具有时效性的php加密解密函数代码
2013/06/19 PHP
php教程之phpize使用方法
2014/02/12 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
python虚拟环境virualenv的安装与使用
2016/12/18 Python
python生成圆形图片的方法
2020/03/25 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
出纳岗位职责范本
2013/12/01 职场文书
酒店总经理欢迎词
2014/01/08 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
法制宣传教育方案
2014/05/09 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
工程承包协议书范本
2014/09/29 职场文书
五好家庭申报材料
2014/12/20 职场文书
服务承诺书
2015/01/19 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android