从零开始学习机器学习之python基础|lambda函数|map函数|reduce函数|filter|设置sort方法的key属性和使用lambda函数实现列表排序

从零开始学习机器学习之python基础|lambda函数|map函数|reduce函数|filter|设置sort方法的key属性和使用lambda函数实现列表排序,第1张

文章目录
  • 一、lambda匿名函数
    • 1.定义
    • 2.注意
  • 二、高阶函数map
    • 1.定义
    • 2.map函数实现
  • 三、reduce累计函数(数字,字符串)
    • 1.定义
    • 2.注意
    • 3.实现阶乘
  • 四、filter用法
    • 1.定义
    • 2.过滤纯数字
  • 五、列表排序sort(key属性设置)和lambda的使用


一、lambda匿名函数 1.定义

lambda 形参1,形参2…:[单行表达式]或函数调用

2.注意
  • lambda参数列表外没有括号
  • 没有函数名
  • 只能实现简单的表达式计算或函数调用(eg:map(func,list))
  • 不能使用循环
  • 可以用三目运算符
    lambda m, n: m if m > n else n
二、高阶函数map 1.定义

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

2.map函数实现
def map(func, m_list):
    all_list = []
    for i in m_list:
        result = func(i)
        all_list.append(result)
    return all_list


new_list = map(lambda x: x**2, [1,2,3,4])
for j in new_list:
    print(j)
三、reduce累计函数(数字,字符串) 1.定义

reduce()函数会对参数序列中元素进行累计

2.注意

reduce不能直接使用,需要导入模块 functools

my_list = list('hello')

result = functools.reduce(lambda x1,x2: x1 + x2,my_list)
result = functools.reduce(lambda x1,x2: x1.upper() + x2.upper(),my_list)

print(result)
3.实现阶乘
my_list = [1,2,3,4,5]
result = functools.reduce(lambda n1,n2:n1*n2,my_list)
print(result)
四、filter用法 1.定义

用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象,如要转换成列表,用list()进行转换

2.过滤纯数字
my_list = ['123','avc','12b','-ds','-23','234']

num_list = filter(lambda  s: s.isdigit(),my_list)
for s in list(num_list):
    print(s)
五、列表排序sort(key属性设置)和lambda的使用

sort方法不能对字典起作用,需要设置属性key

my_list = [{'id':1,'name':'tom','age' : 12},{'id':3,'name':'som','age' : 12},{'id':2,'name':'tom','age' : 12}]

my_list.sort(key=lambda d : d['name'],reverse=True)
print(my_list)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/915720.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存