Python学习03:序列
Posted CQ小子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习03:序列相关的知识,希望对你有一定的参考价值。
本文学习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的指向不变的意思。
参考文章
以上是关于Python学习03:序列的主要内容,如果未能解决你的问题,请参考以下文章