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]4
2.在中间插入一个元素,使用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
原创粉丝点击