Python学习03:序列
来源:互联网 发布:知乎日报api接口 编辑:程序博客网 时间:2024/06/07 05:06
本文学习Python的笔记,仅供参考
序列
一组有顺序的序列集合,这个集合可以包括一个或者多个元素,当然也可以为空集合,类似于数学中的集合概念。
序列有2中:Tuple 和 List
List
这种数据类型是Python内置的一种,是一种有序集合,类似于C语言中的数组,可以看下例子,a中有3个元素,他们是顺序排列,类型为list
>>> a = [1,2,3]>>> print(a,type(a))[1, 2, 3] <class 'list'>因为List是顺序排列,所以可以利用索引来访问每一个变量,越来越像数组了,就连下标规定都是从0开始
>>> a[0]1>>> a[1]2>>> a[2]3
一些特殊之处,比如只有3个元素,我取第四个元素的时候,就越界了,产生了错误,但是如果索引为-1的时候就取到了最后一个元素,和C语言有差别哈。
Traceback (most recent call last): File "<pyshell#60>", line 1, in <module> a[3]IndexError: list index out of range>>> a[-1]3
List是可变的序列,就表示我们可以对其进行插入,删除操作,下面我们来看:
1. 在尾部增加一个元素,使用append方法,这里有些面向对象的写法了,List中有元素有方法,可见4被加到List尾部了
>>> a.append(4)>>> len(a)4>>> a[3]42.在中间插入一个元素,使用insert方法,在index处插入元素,比如下面是在位置1插入55.
>>> a.insert(1,55)>>> print(a)[1, 55, 2, 3, 4]3. 删除某个元素,使用pop(i)
>>> a.pop(2)2>>> print(a)[1, 55, 3, 4]总起来说,这种数据类型还是蛮不错的,动态变化,可操作性强,果真比C语言省不少劲啊。
Tuple
tuple和list非常相似,区别在于tuple变量一旦初始化就不能再更改,声明使用(),List使用[]
>>> b = (3,4,5,6)>>> print(b,type(b))(3, 4, 5, 6) <class 'tuple'>tuple初始化之后就没法再改变了,没有append,insert这种方法
再来看下可变的Tuple,可以见到tuple t中有3个元素,2个str,一个List,我们知道List的元素是可以修改了,然后改了下List的值,结果tuple对应的值就修改了,那么是真的修改了吗?
>>> t = ('a', 'b', ['A', 'B'])>>> print(t)('a', 'b', ['A', 'B'])>>> t[2][0] = 'X'>>> t[2][1] = 'Y'>>> print(t)('a', 'b', ['X', 'Y'])这边有两个图,可以看出tuple的内存结构,可以看到t指向是一个tuple的索引内存,每个索引都指向变量,2指向一个list当list改变之后,但是可以看到内存的指向,其实变得list指向的内容,但是tuple指向的list并没有改变。这样慢慢理解下tuple的指向不变的意思。
参考文章
1. http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000
0 0
- Python学习03:序列
- python 学习序列
- python序列的学习
- python学习04-序列
- python学习1-序列
- python序列学习笔记
- python学习:序列
- python学习记录:序列
- python学习二--序列
- python 之序列学习笔记
- python 学习笔记5------序列
- Python学习笔记----序列共性
- Python学习10:序列使用
- python学习之序列化
- python通用序列学习笔记
- Python学习笔记2(序列)
- python学习笔记 序列化
- Python学习--14 序列化
- iOS 中的block异常
- java 前端与后端联动中文字符编码问题
- ARM家族的介绍(三星)
- quartz使用记录
- Linux Note
- Python学习03:序列
- CLR via C# Reading Notes(1)
- 安卓Andriod使用入门(六)【动态GridView控件】
- 如何找出标有"App Store 精华","Essentials"的所有软件?
- 376. Wiggle Subsequence
- windows 10 启动MYSQL
- Linux编译和安装boost库
- mybatis中使用Java8的日期LocalDate、LocalDateTime
- 使用友盟社会化分享组件实现第三方登录