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实现xlsx文件分析详解
Jan 02 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
启动Atom并运行python文件的步骤
Nov 09 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
Python中的整除和取模实例
Jun 03 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
jQuery中Ajax的get、post等方法详解
2015/01/20 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
python中dict()的高级用法实现
2019/11/13 Python
Python读取YAML文件过程详解
2019/12/30 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
法学个人求职信范文
2014/01/27 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
汇源肾宝广告词
2014/03/20 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
商业门面租房协议书
2014/11/25 职场文书
教师先进个人材料
2014/12/17 职场文书
《观察物体》教学反思
2016/02/17 职场文书
Javascript之datagrid查询详解
2021/09/15 Javascript