第7天:Python 数据结构–序列
python中的数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字、字符、甚至可以是其他数据结构
在Python中,最基本的数据结构是序列(列表和元组),序列中的每个元素都有一个序号(元素的具体位置),这个序号叫索引,索引下标从0开始,以此类推…… 本文着重介绍python的序列及其实际应用。
序列概览
-
Python中有6种内建的序列。其中列表和元组是最常见的类型。其他包括字符串、Unicode字符串、buffer对象和xrange对象。
-
列表和元组的主要区别是列表可以修改,而元组不能,如果要根据要求来添加元素,这时候列表适用性会更好,但是当序列不能修改的时候,使用元组则更合适,使用元组与Python的运作方式相关。
-
在python中几乎所有的情况下列表都可以替代元组,但是特殊情况不能(当使用元组作为字典的不可修改的键时,此时键不能修改,所以不能使用列表)
例如:
#定义一个学生序列
>>> stuinfo=[‘zhangsan’,’lisi’,’wangwu’,18,20]
同时序列中还可以包含序列,例如数据库:database
#定义学生姓名和学生年龄,然后再定义一个属于自己的数据库将两个列表加入
>>> stuname=[‘zhangsan’,’lisi’,’wangwu’]
>>> stuage=[18,20,16]
>>> database=[stuname,stuage]
>>> database
[[‘zhangsan’, ‘lisi’, ‘wangwu’], [18, 20, 16]]
通用序列操作
除此之外,Python还有计算序列长度,找出最大和最小元素的内建函数。
1.索引
[‘zhangsan’, ‘lisi’, ‘wangwu’]
>>> database[1]
[18, 20, 16]
#字符串序列的索引
>>> str=’hello’
>>> str[0]
‘h’
>>> str[1]
‘e’
以上这就是索引,所有序列中都可以通过元素编号的方式进行索引,当使用负数索引时,Python会从右边到左进行所有,-1是从序列的最后一个元素开始,如下:
>>> str[-1]
‘o’
#从倒数第二个元素开始
>>> str[-2]
‘l’
2.分片
>>> tag=[‘https://www.cnblogs.com/yangyuqig/p/10101663.html’]
# 拿到这个元素后通过分片取出一个范围的值
>>> tag[0][0:24]
‘https://www.cnblogs.com/’
由上所知,分片操作的的实现需要提供两个索引作为边界,是一个左闭右开的区间,也就是第1个索引包含在分片内,而第2个索引不包含在这个分片内,例如:
# 表示从第四个到最后一个元素
>>> num[3:10]
[4, 5, 6, 7, 8, 9, 10]
2.1 分片快捷操作
# 取到前面3个数据
[1, 2, 3]
2.2 分片步长操作
>>> num[0:6:2]
[1, 3, 5]
[8, 9]
[2, 3, 4, 5, 6, 7, 8, 9]
>>> num[:6:2]
[1, 3, 5]
# 提取从后往前的8个元素,步长为2
>>> num[:2:-2]
[10, 8, 6, 4]
3.序列相加
‘hello world !’
>>> [1,2,3]+[‘zhangsan’,’lisi’,’wangwu’]
[1, 2, 3, ‘zhangsan’, ‘lisi’, ‘wangwu’]
4.序列相乘
[‘hello world !’, ‘hello world !’, ‘hello world !’]
5.成员资格
>>> ‘h’ in str
True
>>> ‘x’ in str
False
6.序列长度、最大值和最小值
3
>>> max(11,34,23)
34
>>> min(11,34,23)
11
总结
微信赞赏支付宝赞赏