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 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python中用startswith()函数判断字符串开头的教程
Apr 07 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
python 内置模块详解
Jan 01 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
python zip()函数的使用示例
Sep 23 Python
python 使用cycle构造无限循环迭代器
Dec 02 Python
Pycharm 跳转回之前所在页面的操作
Feb 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
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php加密解密字符串示例
2016/10/13 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
分享python数据统计的一些小技巧
2016/07/21 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
Python实现一个优先级队列的方法
2020/07/31 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
C面试题
2015/10/08 面试题
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL
css样式important规则的正确使用方式
2022/06/10 HTML / CSS