[PY3]——内置数据结构(9)——线性结构与切片/命名切片slice()
线性结构的总结
列表list 元组tuple 字符串str bytes bytearray的共同点:
- 都是顺序存储、顺序访问的;
- 都是可迭代对象;
- 都可以通过索引访问
线性结构的特征:
- 可迭代
- 可通过len获取长度
- 可以使用下标操作符通过索引访问
- 可以切片
补充三个函数:
- enumerate() 同时获取index和value
- next()获取一个迭代器的下一个值
- iter()把一个可迭代对象转化成一个迭代器
切片操作[start:stop]
# 注意:以下几条规则的优先级,是按照顺序依次排序的 In [12]: lst=list(range(10))
In [13]: lst
Out[13]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 访问lst的一段,从start开始到stop结束,但不包含stop
In [14]: lst[3:7]
Out[14]: [3, 4, 5, 6] # 当start省略时表示从头开始,当stop省略时表示直到末尾
In [15]: lst[:7]
Out[15]: [0, 1, 2, 3, 4, 5, 6] In [16]: lst[3:]
Out[16]: [3, 4, 5, 6, 7, 8, 9] In [17]: lst[:]
Out[17]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 支持负数索引,负数索引实际上可以转化为 len(lst)+index
In [18]: lst[-5:-3] //[10+(-5)=5,10+(-3)=7]
Out[18]: [5, 6] In [25]: lst[3:-1] //[3,10+(-1)=9]
Out[25]: [3, 4, 5, 6, 7, 8] # 当start>=stop时,返回空列表
In [21]: lst[100:] //100>-1
Out[21]: [] In [22]: lst[:-100] //0>10+(-100)
Out[22]: [] In [23]: lst[3:1] //3>1
Out[23]: [] In [24]: lst[3:3] //3=3
Out[24]: [] # 当start超出索引范围start=0,当stop超出索引范围stop=-0
In [19]: lst[-100:]
Out[19]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [20]: lst[-100:100]
Out[20]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[start:stop:step]
In [27]: lst[::2]
Out[27]: [0, 2, 4, 6, 8] In [28]: lst[::-2]
Out[28]: [9, 7, 5, 3, 1] In [30]: lst[::-1]
Out[30]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] In [35]: lst[10:1:-2]
Out[35]: [9, 7, 5, 3] In [36]: lst[10:1:2]
Out[36]: []
命名切片slice( )
items=[0,1,2,3,4,5,6]
a=slice(2,4)
print(a.start,a.stop,a.step) #切片的start、stop、step三元组slice()中都可以指定
2 4 None
print(a)
slice(2, 4, None) #使用已命名的a,可以做什么?
print(items[a]) #等价于print(items[2:4])
[2, 3]
items[a]=[10,11];print(items)
[0, 1, 10, 11, 4, 5, 6]
del items[a];print(items)
[0, 1, 4, 5, 6]
[PY3]——内置数据结构(9)——线性结构与切片/命名切片slice()的更多相关文章
- [PY3]——内置数据结构(6)——集合及其常用操作
集合及其常用操作Xmind图 集合的定义 # set( ) # {0,1,2} //注意不能用空的大括号来定义集合 # set(可迭代对象) In [1]: s=set();type ...
- [PY3]——内置数据结构(8)——解构与封装
### 解构的理解与用法 ### 解构是python很有特色的一个功能,被很多语言借鉴(例如ES6) # 元素按照顺序赋值给变量 In [31]: lst=list(range(5)) In [32] ...
- [PY3]——内置数据结构(7)——字典及其常用操作
字典及其常用操作Xmind图 关于字典 字典是一种key-value结构 字典是无序的 字典的定义 # {}大括号可以直接定义一个空字典 In [1]: d={};type(d) Out[1]: di ...
- [PY3]——内置数据结构(1)——列表及其常用操作
列表及其常用操作_xmind图 about列表 列表是一个序列,用于顺序存储数据 列表分为两种:ArrayList(用数组实现).LinkedList(用链表实现) 定义与初始化 #l ...
- [PY3]——内置数据结构(5)——字符串编码
py2和py3中关于字符串的最大区别? python2中只有 unicode类型 而python3中有 string bytes两种类型 关于string和bytes的区分? 1.str是文本序列.b ...
- [PY3]——内置数据结构(2)——元组及其常用操作
定义和初始化 #tuple() 使用工厂函数tuple定义一个空元组 #() 使用圆括号定义一个空元组 #(1,2,3) 使用圆括号定义有初始值的元组 #tuple(可迭代对象) 把可迭代对象转换为一 ...
- [PY3]——内置数据结构(3)——字符串及其常用操作
字符串及其常用操作xmind图 字符串的定义 1. 单引号/双引号 In [1]: s1='hello world' In [2]: s1="hello world" 2. 三对单 ...
- [PY3]——内置数据结构(4)——字符串格式化(format)
字符串格式化是拼接字符串的一种手段 join和+拼接字符串的方法,难以控制格式 printf style 字符串格式化 这种方法是从c语言继承过来的 # 待格式化的字符串:一个字符串存在占位符 In ...
- 内置数据结构(list)
列表.元组.字符串.字典和集合是python内置的数据结构,也可以叫内置容器.前3个是线性结构,线性结构可以切片操作.解包和封包操作. dir()方法可以查看对象拥有哪些属性和方法. help()方法 ...
随机推荐
- 用canvas画布画一个画板
前段时间,在对H5的回顾中突然对canvas有了感觉,闲来无事便对其进行了一些捯饬.这不,上周我还做了一个好玩的画板呢,废话不多说,直接上代码(PS:翠花,上代码~): HTML部分: <!DO ...
- Android实现表单提交,webapi接收
1.服务端采用的是.net的WEBAPI接口. 2.android多文件上传. 以下为核心代码: package com.example.my.androidupload; import androi ...
- C++的一些知识点摘抄(创建基本类 高级类)
问:对象有多大? 答:对象占据的内存量取决于其成员变量的长度,类函数不占据为对象分配的内容. 有些编译器在内存中对齐变量,这导致2字节变量实际占用的内存多于2字节. 问:为何不应将所有成员数据声明为公 ...
- 使用NPOI时ICSharpCode.SharpZipLib版本冲突问题解决
系统原来引用的ICSharpCode.SharpZipLib是0.84版本的, 添加了2.3版本的NPOI引用后,报版本冲突错误,因为NPOI用的ICSharpCode.SharpZipLib是0.8 ...
- Gogland配置- 修改Go源代码tab值
Gogland对Go源代码默认值为8个,我很不习惯,第一次遇到tab数量这么大的,于是我决定修改这个tab值! 1,点击顶部菜单“File”->"Settings". 2,在 ...
- ping使用
while read line do ip=`echo $line | awk '{print $2}' ` -i $ip ];then echo $line | tee -a b fi
- AngularJS入门讲解2:过滤器和双向绑定
我们在上一课做了很多基础性的训练,接下来,我们讲一些难点的知识点,首先,讲一下如何实现一个全文检索功能: <html ng-app> <head> ... <script ...
- scrapy实战1,基础知识回顾和虚拟环境准备
视频地址 https://coding.imooc.com/learn/list/92.html 一. 基础知识回顾 1. 正则表达式 1)贪婪匹配,非贪婪匹配 .*? 非贪婪 . ...
- RN 中 Native 模块的注入过程
找到所有的模块 一般来说,只要在模块中声明 RCT_EXPORT_MODULE 即可.这是个宏,展开后是声明了一个函数,定义了两个函数,如下所示. #define RCT_EXPORT_MODULE( ...
- React 初识
React We built React to solve one problem: building large applications with data that changes over t ...