python 切片和range()用法说明


Posted in Python onMarch 24, 2013

理解切片基本用法:

首先需要明白,可迭代对象,按照正数索引(正序)是从0开始的,按照负数索引(逆序)是从-1开始的。
>>> astring = 'Hello world'
>>> astring[0:2]
'He'
>>>
可见,这种情况下,给切片操作一个起始位置,和一个终止位置,则显示从起始位置开始(包括起始位置)到终止位置(不包括终止位置)之间的内容;

在有负数索引的情况下,是类似的,只要确定终止位置的内容:

>>> astring[0:-1]
'Hello worl'
>>>

>>> astring
'Hello world'
>>> astring[0::1]
'Hello world'
>>> astring[0::2]
'Hlowrd'
>>> astring[0::3]
'Hlwl'
>>> astring[0::4]
'Hor'
>>>
在有三个参数的情况下,第一个起始位置,第二个是终止位置,地三个是步长。

测试程序:
# 首先理解切片含义,如下为切片程序结果演示
>>> s='abcde'
>>> s[:0]
''
>>> s[0:]
'abcde'
>>> s[1:]
'bcde'
>>> s[2:]
'cde'
>>> s[:3]
'abc'

理解range()基本用法:

测试程序一:

>>> range(1,5) # 输出从1到5的结果。包括头,不包括尾.
[1, 2, 3, 4]
>>> range(1,5,2) # 输出从1到5,间隔距离为2的结果。包括头,不包括尾.
[1, 3]
>>> range(5) # 输出从0到5的结果。默认起止为0。包括头,不包括尾.
[0, 1, 2, 3, 4]

测试程序二:

>>> s='abcde'
>>> i = -1
>>> for i in range(-1,-len(s),-1): # 输出结果
...     print s[:i]
...
abcd
abc
ab
a

测试程序三:

>>> s='abcde'
>>> for i in range(len(s),0,-1): # 输出结果
...     print s[:i]
...
abcde
abcd
abc
ab
a

测试程序四:

>>> s='abcde'
>>> for i in [None] + range(-1,-len(s),-1): # 用None作为索引值的输出结果
...     print s[:i]
...
abcde
abcd
abc
ab
a

另外,range可以直接给list变量赋值:
elements = range(0, 6)

Python 相关文章推荐
JSON Web Tokens的实现原理
Apr 02 Python
Python使用django搭建web开发环境
Jun 09 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
python如何获取当前文件夹下所有文件名详解
Jan 25 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 Python
浅析Python 字符编码与文件处理
Sep 24 Python
pytorch中的model.eval()和BN层的使用
May 22 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 Python
Python实现信息管理系统
Jun 05 Python
python list中append()与extend()用法分享
Mar 24 #Python
python del()函数用法
Mar 24 #Python
python dict remove数组删除(del,pop)
Mar 24 #Python
python str与repr的区别
Mar 23 #Python
python 布尔操作实现代码
Mar 23 #Python
python 字符串split的用法分享
Mar 23 #Python
python赋值操作方法分享
Mar 23 #Python
You might like
模仿OSO的论坛(五)
2006/10/09 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
PHP发送短信代码分享
2015/08/11 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python实现大量图片重命名
2020/03/23 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
印尼网上商店:Alfacart.com
2019/03/11 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
小学语文国培感言
2014/03/04 职场文书
社区党务公开实施方案
2014/03/18 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
质量标语大全
2014/06/12 职场文书
学生检讨书怎么写
2015/05/07 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android