在python中,成员有序排列的(此有序并非指排序),并且可以通过下标访问到它的成员,称为序列,包括:字符串、列表、元组。本章将主要讨论python中的容器对象,主要包含顺序容器列表和元组、映射容器字典以及集合容器集合。字符串将在下一章单独学习。
顺序容器
顺序容器基础
长度为N的顺序容器在通过下标访问时有两种方式:
- 第一位为0到最后一位为N-1
- 第一位为-N到最后一位为-1(负索引)
对于顺序容器所适用的操作符包括:
- 成员关系操作符:in,not in
- seq*expr:序列重复expr次
- seq1+seq2:连接序列seq1和seq2
- 切片操作符:[]、[:]、[::]
- 可以将平时通过下标访问理解为seq[0:i],所以切片操作就是声明了起始点和结束点的下标访问seq[start:end]。
- 切片运算的起始点和结束点可以超过容器的长度范围,并且不会报错。
顺序容器常见的内建函数包括:
- 类型转换函数
- list()
- str()
- unicode()
- tuple()
- 运算函数
- enumerate(iter):接收一个可迭代对象作为参数,返回一个enumerate对象,该对象是iter每个元素索引和值组成的元组。如果要输出enumerate的话,可以使用list将其转化。
- len(seq):返回seq的长度。
- max()\min()
- reversed(seq):逆序反转,返回的类型为reversed类型,如果要输出,同样也要使用str()或list()转化。
- sorted(iter, func=None, key=None, reverse=False):将可迭代对象作为参数,返回有序列表。可选参数的含义和list.sort()相同,后续会讲解。
- sum(seq,init=0):返回seq和可选参数init的总和,容器所包含的数据需要时数字对象。
列表
列表的形式是用方括号包起、逗号分隔元素。列表可以通过下标或者切片操作来访问一个或多个连续的元素,其中不仅可以包含python的标准类型对象,还可以包括自定义的类对象。与C/C++中数组不同的是,python中列表可以包括不同类型的对象。
# 创建列表
aList=[1,'abc',True,4.3,[1,2,3]]
# 访问元素
print(aList