Python基本类型-列表
列表支持所有的我们队字符串的序列操作,唯一的区别就是结果往往是列表而不是字符串
>>>L=[11,'python',1.23] >>>len(L) 3 >>>L[0] 11 >>>L[:-1] [11,'python'] >>>L+[4,5,6] [11,'python',1.23,4,5,6]
与其他语言的数组相比,Python的列表没有固定的类型约束,没有固定的大小。
可以根据需求增加或减小列表大小
>>>L.append('hello') #追加元素 >>>L [11,'python',1.23,'hello'] >>>L.pop[1] #移除元素并返回被移除的元素 'python' >>>L [11,1.23,'hello']
另外列表还提供了给指定位置插入元素的方法:insert()和根据元素值移除元素的方法:remove()
>>>L.insert(0,123) >>>L [123,11,'python',1.23] >>>L.remove(123) [11,'python',1.23]
列表还提供了正序排列:sort()和倒叙排列:reverse()两个排序方法
>>>M = [22,11,33] >>>M.sort() >>>M [11,22,33] >>>M.reverse() >>>M [33,22,11]
Python核心数据类型有一个优秀的特性就是他们支持任意的嵌套,这种特性的一个直接应用就是实现矩阵或者Python中的“多维数组”
>>>M=[[1,2,3], #创建一个3*3的矩阵 [4,5,6], [7,8,9]] >>>M [[1,2,3],[4,5,6],[7,8,9]] >>>M[1] #获取矩阵第二个列表 [4,5,6] >>>M[1][2] #获取矩阵中第二个列表中的第三个元素 6
处理序列的操作和列表的方法中,Python还包括了一个更高级的操作,称作列表解析表达式,从而提供了一种处理像矩阵这样结构的强大工具,比如我们要从列举的矩阵中提取出第二列:
>>>M=[[1,2,3], #创建一个3*3的矩阵 [4,5,6], [7,8,9]] >>>col2=[row[1] for row in M] >>>col2 [2,5,8]
这种写法其实相当于用for循环遍历矩阵然后将符合条件的元素放入新的列表中。实际应用中列表解析可以更复杂:
>>>[row[1] + 1 for row in M] #把第2列每个元素加1,返回新数组 [3,6,9] >>>[row[1] for row in M if row[1]%2==0] #取出第2列的偶数 [2,8]
PS:这种矩阵结构适用于小规模的任务,对于大型矩阵的处理我们可以使用开源的NumPy系统。
相对复杂的map和filter函数之后再做介绍