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 深入理解yield
Sep 06 Python
python中urllib模块用法实例详解
Nov 19 Python
Python制作爬虫采集小说
Oct 25 Python
老生常谈Python进阶之装饰器
May 11 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 Python
python 操作hive pyhs2方式
Dec 21 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
python程序如何进行保存
Jul 03 Python
python 元组和列表的区别
Dec 30 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程序?
2006/12/08 PHP
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
Python中List.count()方法的使用教程
2015/05/20 Python
Python实现图片转字符画的示例
2017/08/22 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
python opencv实现运动检测
2018/07/10 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
Python list运算操作代码实例解析
2020/01/20 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
学雷锋志愿服务月活动总结
2014/03/09 职场文书
美容院店长岗位职责
2014/04/08 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB
Python开发简易五子棋小游戏
2022/05/02 Python
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle