第3章 容器类型
容器类型用于将对象分组汇总到一起。不同容器类型之间的最主要区别是单个元素的访问方式以及运算符定义方式的不同。
3.1 列表
顾名思义,列表是一个包含了一系列任意对象的容器:
L = ['a' 20.0, 5]
M = [3,['a', -3.0, 5]]
通过为每个元素分配一个索引,可用于遍历列表中的每个对象。列表第一个元素的索引值为0。这种基于0的索引在数学符号中经常使用。考虑多项式系数的常用索引。
索引可用于访问如下对象:
L[1] # 返回 20.0
L[0] # 返回'a'
M[1] # 返回['a',-3.0,5]
M[1][2] # 返回5
这里的方括号用法相当于数学公式中所使用的下标。L
是一个简单的列表,而列表M
本身嵌套了一个列表,以至于需要两个索引来访问嵌套列表中的元素。
通过命令range
可以很容易地生成一个包含连续整数的列表:
L=list(range(4)) # 生成一个包含4个元素的列表: [0, 1, 2 ,3]
更为常见的用法是为该命令提供start、stop和step参数:
L=list(range(17,29,4)) # 生成 [17, 21, 25]
命令len
可以返回列表的长度:
len(L) # 返回 3
3.1.1 切片
对一个列表在i
和j
之间进行切片操作将会生成一个新的列表,该列表包含了从索引i
开始到j
之前结束的所有元素。
对于切片操作,必须给出索引范围。L[i:j]
意味着会截取列表L
从L[i]
开始到L[j-1]
结束的所有元素。换句话说,新的列表是通过将第i
个元素从列表L
中删除并取接下来的j−i
个元素所得到的(因为。更多示例如图3.1所示。
图3.1 一些典型的切片情况
这里,L[i:]
表示删除第i个元素,L[:i] ...
Get Python3.0科学计算指南 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.