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中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
Python用Bottle轻量级框架进行Web开发
Jun 08 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
python list元素为tuple时的排序方法
Apr 18 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
python3 反射的四种基本方法解析
Aug 26 Python
Python调用钉钉自定义机器人的实现
Jan 03 Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 Python
python实现微信打飞机游戏
Mar 24 Python
python3 简单实现组合设计模式
Jul 02 Python
用pandas划分数据集实现训练集和测试集
Jul 20 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
2014全国两会学习心得体会1000字
2014/03/10 职场文书
健康家庭事迹材料
2014/05/02 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
母亲节感言
2015/08/03 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android