Python 文档学习笔记
数据结构——列表
列表的方法
添加
- list.append(x) 添加元素
- 添加一个元素到列表的末尾;相当于a[len(a):] = [x]
- list.extend(L) 并入一个列表
- 将指定列表中的所有元素附加到另一个列表的末尾;相当于a[len(a):] = L
- list.insert(i,x) 指定位置i插入一个元素x
- 在给定位置插入一个元素。第一个参数是插入的元素的索引,所以 a.insert(0, x) 在列表的最前面插入,a.insert(len(a), x) 相当于 a.append(x)。
移出
- list.pop([i]) 弹出//类比栈的操作
- 删除列表中指定位置的元素并返回它。如果未指定索引,a.pop()将删除并返回列表中的最后一个元素。
- list.remove(x) 删除x
- 删除列表中第一个值为 x 的元素。如果没有这样的元素将会报错
查找
-
list.index(x) 返回x的地址
* 返回列表中第一个值为 x 的元素的索引。如果没有这样的元素将会报错。 -
list.count(x) 查x个数
* 返回列表中 x 出现的次数。
排序
-
list.sort(cmp=None, key=None, reverse=False)
* 原地排序列表中的元素(参数可以用来自定义排序方法,参考sorted()的更详细的解释)。 -
list.reverse()
* 原地反转列表中的元素。
* 注:原地排序就是指不申请多余的空间来进行的排序
计算
- sum(l) 求和,如果可以元素之间可以求和的话
列表的使用举例
1. 用列表作为栈
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
2.函数式编程工具举例:filter()、map()和reduce()
-
filter() 过滤
-
filter(function, sequence)返回的序列由function(item)结果为真的元素组成
>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23] >>> filter(lambda x : x % 2 != 0 and x % 3 != 0, range(2, 25)) [5, 7, 11, 13, 17, 19, 23]
-
-
map(function, sequence) 生成
-
为序列中的每一个元素调用 function(item) 函数并返回结果的列表
>>> def cube(x): return x*x*x >>> map(cube, range(1, 11)) [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
-
-
reduce(function, sequence) 迭代遍历运算
-
只返回一个值,它首先以序列的前两个元素调用函数 function
>>> def add(x,y): return x+y ... >>> reduce(add, range(1, 11)) 55
-
3.列表解析
-
从一个序列的每个元素的操作结果生成新的列表
squares = [x**2 for x in range(10)] -
这也相当于
squares = map(lambda x: x**2, range(10)),但是更简洁和易读。 -
在 python 3.0 中,解析语法也可以用来创建集合和字典:
{ sum(row) for row in matrix }
{ i:sum(M[i]) for i in range(3) }