一丶匿名函数

  语法:

    函数名 = lambda参数:返回值

# 普通的正常的函数
def func(n):
return n * n
ret = func(9)
print(ret) # 匿名函数
a = lambda n : n * n
ret = a(9)
print(ret)

  说是匿名函数,可总该有个名字吧,我们可以用__name__来查看一下名字

b = lambda x: x+1
a = lambda n : n * n
print(a.__name__) # __name__的值都是<lambda>
print(b.__name__) # __name__的值都是<lambda>

  单个变量传值可以这样传,那假如两个或多个变量呢,该怎么样呢?我们可以用小括号括起来,要不就会报错

def func(x, y):
return x, y print(func(1,2)) #(1,2) suiyi = lambda x, y : (1, 2) # 笔试题
print(suiyi)
print(suiyi(250,38)) #(1,2)

  注意:

    1.函数的参数可以有多个,多个参数之间用逗号隔开

    2.匿名参数不管多复杂,只能写一行,且逻辑结束后直接返回数据

    3.返回值和正常函数一样,可以是任意数据类型

二丶sorted排序

lst = [16, 18, 32, 54, 12, 9]
lst.sort() # list的方法
print(lst) #[9, 12, 16, 18, 32, 54]
#内置函数中提供了一个通用的排序方案, sorted()
s = sorted(lst)
print(s) #[9, 12, 16, 18, 32, 54]

  语法:

    sorted(Iterable,key = None,reverse=False)

    Iterable:可迭代对象

    key:排序规则(排序函数),在sorted内部将可迭代对象的每一个元素传递给这个函数的参考值,根据函数运算的结果进行排序(根据权重进行排序)

    reverse:是否是倒序.True:倒序,False:正序

  sorted可以跟lambda组合使用

lst = [
{'name':"迪迦奥特曼","age":48},
{"name":"雷欧娜",'age':38},
{"name":"赛文","age":39},
{"name":"泰罗","age":32},
{"name":"狗哥无敌","age":28}
] ll = sorted(lst, key=lambda el: len(el['name']), reverse=False)
print(ll)

三丶filter()筛选函数

  语法:

    filter(function,Iterable)

    function:用来筛选的函数,在filter中会自动的把iterable中的元素传递给function.然后根据function返回的True或者False来判断是否保留此项数据

    Iterable:可迭代对象

lst = ["张无忌", "张铁林", "马丹", "曹丹","马大帅"]
def func(el):
if el[0] == '张':
return False # 不想要的
else:
return True # 想要的
# 筛选,
# 将lst中的每一项传递给func, 所有返回True的都会保留, 所有返回False都会被过滤掉
f = filter(lambda el: el[0]!="张", lst)
print("__iter__" in dir(f)) # 判断是否可以进行迭代
for e in f:
print(e)

四丶map()映射函数

  语法:

    map(function,Iterable)

    可以对可迭代对象中的每一个元素进行映射,分别取执行function

# 计算列表中没个数字的平方
#普通函数
lst = [1,4,7,2,5,8]
ll = []
for el in lst:
ll.append(el**2)
print(ll)
#映射
def func(el):
return el**2
m = map(lambda el: el**2, lst) # 把后面的可迭代对象中的每一个元素传递给function, 结果就是function的返回值
print(list(m))

最新文章

  1. 总结JavaScript事件机制
  2. ajax请求技术
  3. pycharm Cannot find declaration to goto----解决方案
  4. mybatis 下划线转驼峰配置
  5. [转] Android实时抓包分析 : 善用adb调试桥
  6. You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法
  7. jdbc:java数据库连接
  8. python 交换变量值
  9. SPOJ 1108 Card Trick 暴力模拟
  10. svn server安装配置
  11. MSSQL 获取数据库字段类型
  12. 将Python代码嵌入C++程序进行编写
  13. 张高兴的 Windows 10 IoT 开发笔记:使用 Lightning 中的软件 PWM 驱动 RGB LED
  14. Android常见Crash原因总结(二)
  15. 【linux】linux下vi命令的使用
  16. 51 nod 1188 最大公约数之和 V2
  17. hdu 1130 How Many Trees?(Catalan数)
  18. 如何查询注册表的值及 Powershell 应用
  19. Lodop打印控件中PRINT_INITA()和PRINT_PAGESIZE()宽高
  20. Log4net(三)——RollingFileAppender配置

热门文章

  1. Unity实现支持泛型的事件管理以减少使用object作为参数带来的频繁装拆箱
  2. 第六篇 elasticsearch express 删除索引数据
  3. redis系列:通过日志案例学习string命令
  4. 移除KVO的风险
  5. [WIP]Vue CLI
  6. 51nod1119(除法取模/费马小定理求组合数)
  7. 洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle
  8. 点分治【bzoj1468】 Tree
  9. 线段树 洛谷P3932 浮游大陆的68号岛
  10. Sharepoint JSCOM 列表操作