python中list列表的高级应用 高级函数

在python所有的数据结构中,list具有重要地位,并且非常的方便,这篇文章主要是讲解list列表的高级应用,基础知识可以查看博客
此文章为python英文文档的翻译版本,你也可以查看英文版。https://docs.python.org/2/tutorial/datastructures.html

use a list as a stack: #像栈一样使用列表

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]

use a list as a queue: #像队列一样使用列表

three built-in functions三个重要的内建函数

filter(), map(), and reduce().
filter(function, sequence):
按照function函数的规则在列表sequence中筛选数据

map(function, sequence):
map函数实现按照function函数的规则对列表sequence做同样的处理,
这里sequence不局限于列表,元组同样也可。

注意:这里的参数列表不是固定不变的,主要看自定义函数的参数个数,map函数可以变形为:def func(x,y) map(func,sequence1,sequence2) 举例:

reduce(function, sequence):
reduce函数功能是将sequence中数据,按照function函数操作,如 将列表第一个数与第二个数进行function操作,得到的结果和列表中下一个数据进行function操作,一直循环下去…
举例:

List comprehensions
这里将介绍列表的几个应用:
squares = [x**2 for x in range(10)]
#生成一个列表,列表是由列表range(10)生成的列表经过平方计算后的结果。
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
#[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] 这里是生成了一个列表,列表的每一项为元组,每个元组是由x和y组成,x是由列表[1,2,3]提供,y来源于[3,1,4],并且满足法则x!=y。

Nested List Comprehensions
这里比较难翻译,就举例说明一下吧:

这里两层嵌套比较麻烦,简单讲解一下:对矩阵matrix,for row in matrix来取出矩阵的每一行,row[i]为取出每行列表中的第i个(下标),生成一个列表,然后i又是来源于for i in range(4) 这样就生成了一个列表的列表。

The del statement:
删除列表指定数据,举例:

Sets: 集合

Dictionaries字典

也可以使用规则生成字典:

enumerate():遍历元素及下标
enumerate 函数用于遍历序列中的元素以及它们的下标:

zip():
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)。

有关zip举一个简单点儿的例子:

reversed():反转

sorted(): 排序

python的set和其他语言类似, 是一个 基本功能包括关系测试和消除重复元素.

To change a sequence you are iterating over while inside the loop (for example to duplicate certain items), it is recommended that you first make a copy. Looping over a sequence does not implicitly make a copy. The slice notation makes this especially convenient:

1 2 收藏 1 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部