python特殊函数

python特殊函数

特殊函数调用方法等于之前所学有所区别。最大的好处就是程序更简洁。下面介绍3个特殊函数


lambda

lambda函数,是用一个只用一行就能解决问题的函数

>>> def add(x):
	x+=3
	return x

>>> add(6)
9
>>> lam=lambda x:x+3   # lambda关键字+若干参数用逗号隔开:表达式
>>> lam
<function <lambda> at 0x0000000002FC9620>
>>> lam(6)
9
>>> lam(9)
12
>>> 

map

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

语法
map() 函数语法:

map(function, iterable, ...)

参数
function – 函数
iterable – 一个或多个序列.

返回值
Python 2.x 返回列表。

Python 3.x 返回迭代器。

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

>>> m=map(lambda x: x+3,range(10))
>>> m
<map object at 0x0000000002B37748>
>>> list(m)   #需要用列表转换一下
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
>>> lst1 = [1,2,3,5,9]
>>> lst2 = [2,5,9,7,6]
>>> lst3 = [5,6,9,1,5]   #3个列表对应的数相加求和
>>> m = map(lambda x,y,z:x+y+z,lst1,lst2,lst3) # 使用 lambda 匿名函数
>>> list(m)
[8, 13, 21, 13, 20]
>>> 

filter

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

语法
以下是 filter() 方法的语法:

filter(function, iterable)
参数
function – 判断函数。
iterable – 可迭代对象。
返回值
返回列表。

实例:
找出大于0的数:

>>> n = range(-10,10)
>>> f = filter(lambda x:x>0,n)
>>> list(f)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

过滤出1~100中平方根是整数的数:

import math
def is_sqr(x):
    return math.sqrt(x) % 1 == 0
 
newlist = filter(is_sqr, range(1, 101))
print(newlist)

总结:编程的时候能用就用,让代码看起来更优雅~。不会用也不强求。。

相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页