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 相关文章推荐
深入探究Django中的Session与Cookie
Jul 30 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
Python中的min及返回最小值索引的操作
May 10 Python
详解Python生成器和基于生成器的协程
Jun 03 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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
PHP7新增函数
2021/03/09 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
详解javascript高级定时器
2015/12/31 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
环境科学专业研究生求职信
2013/10/02 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
2015年电教工作总结
2015/05/26 职场文书
英雄儿女观后感
2015/06/09 职场文书
代码解析React中setState同步和异步问题
2021/06/03 Javascript
代码复现python目标检测yolo3详解预测
2022/05/06 Python