标签:img als fine tty 操作 生成器 com exit 访问
def 函数声明
return 返回值
pass 略过,啥也不干
exit(1) 直接退出
常用的高阶函数有:
Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回例1:我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4]
上,就可以用map()
实现如下:
[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
例2:写一个将字符串转化为整数的函数,即实现内置int()函数的功能
也可使用lambda简化为:
例3:将一个列表中的奇数过滤出来
sorted 语法:
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
例4:对列表和字典进行排序
格式为:[exp for val in collection if condition]
例如,list = [x for x in range(1,10) if x%2==0]
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。
通过next()
函数获得generator的下一个返回值
例:著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:
1, 1, 2, 3, 5, 8, 13, 21, 34, ...
斐波拉契数列用列表生成式写不出来,但可以用生成器写出来,如下:
标签:img als fine tty 操作 生成器 com exit 访问
原文地址:https://www.cnblogs.com/karl-python/p/8850324.html