Python中的数据结构主要有:序列、集合和字典
序列
- 是一种可迭代的、元素有序、可以重复出现的数据结构。序列可以通过索引访问元素
- 序列包括的结构有列表(List)、字符串(str)、元组(tuple)、范围(Range)、字节序列bytes。序列可进行的操作有索引,分片、加和乘
序列索引操作
序列中第一个元素的索引是0。其他元素的索引是第一个元素的偏移量,可以有正偏移量。称为正值索引,所以也可以有负偏移量。称为负值索引。正值索引的最后一个元素,索引是序列长度-1。复制索引最后一个元素索引是-1,最小值 -序列长度+1
a = 'Hello'
print(a[0])
print(a[-1])
print(max(a)) 返回最后一个元素
print(min(a)) 返回第一个元素
print(len(a)) 长度
序列的加和乘
a = 'Hello'
a*3 'HelloHelloHello'
a += ' World' 'Hello World'
序列的分片
序列的分片(Slicing)就是从序列中切分出小的只序列,分片使用分片运算符有两种形式。
[start:end]
:start是开始索引,end是结束索引。[start:end:step]
:start是开始索引,end是结束索引,step是步长,是分片时获取元素的间隔。可以为正负整数。分片包括start位置元素,但不包括end元素位置,start和end的都可以省略
a[1:3] a[0:3] a[:3] a[0:] a[0:5] a[:] a[1:-1]
a[1:5:2] a[::-1] = 'olleH'
元组
tuple是一种序列(sequence)结构
创建元组
元组是一种不可变序列,一旦创建就不能修改,创建元组可以使用 tuple([iterable]) 函数或直接用逗号将元素分隔
(1,2,3,'Hello',2.3)
tuple([22,12,45])
当元组只有一个元素时,后面的逗号不能省略
a = (12,)
b = ()
访问元组
a = (1,2,3,'Hello',2.3)
a[3] 'Hello'
a[1:3] (2,3)
a[2:]
a[:2]
元组拆包(unpack)
a = (1,2,3,'Hello',2.3)
n1,n2,n3,str1,d1 = a
print(n1) 值 1
接收拆包元素的变量个数应该等于元组个数,个数也可以少于元组个数,下划线表示不接收
n1,n2,n3,*n = a
print(n) 值 ['Hello',2.3]
n1,_,n3,_,d1 = a
遍历数组
a = (21,22,23,24)
for item in a:
print(item)
for i, item in enumerate(a):
print("{0}-{1}".format(i, item))
其中,enumerate(a)
函数可以获得元组对象,该对象有两个元素,第一个是索引,第二个是元素值,所以 (i, item)
是元组拆包过程。
这里的元组遍历适合,字符串,范围,列表。