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 相关文章推荐
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
Python中用altzone()方法处理时区的教程
May 22 Python
Python3访问并下载网页内容的方法
Jul 28 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
spyder常用快捷键(分享)
Jul 19 Python
Python查看微信撤回消息代码
Jun 07 Python
Python实现合并两个有序链表的方法示例
Jan 31 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
Python with语句和过程抽取思想
Dec 23 Python
django model通过字典更新数据实例
Apr 01 Python
python 一维二维插值实例
Apr 22 Python
Python下使用Trackbar实现绘图板
Oct 27 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批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
PHP代码优化技巧小结
2015/09/29 PHP
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
2017/12/09 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
英国健身专家:WIT Fitness
2021/02/09 全球购物
二年级班级文化建设方案
2014/05/10 职场文书
高一军训的心得体会
2014/09/01 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
Java使用jmeter进行压力测试
2021/07/09 Java/Android
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript