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函数之后再做介绍

posted @ 2017-05-16 17:14  歌者的快递  阅读(244)  评论(0编辑  收藏  举报