首页 > 其他分享 >匿名函数,二分法,三元表达示

匿名函数,二分法,三元表达示

时间:2022-10-13 21:00:54浏览次数:64  
标签:name res 算法 二分法 匿名 l1 print 三元

算法简介及二分法

1.什么是算法
	算法就是解决问题的有效方法 不是所有算法都很高效也有不合格的算法
2.算法应用场景
	推荐算法:比如抖音
    成像算法:AI相关
    几乎覆盖了生活的方方面面
3.二分法
	是算法中最简单的算法 甚至称不上算法
"""
二分法的使用要求
	要查找的数据集必须时有序的
二分法的缺陷
	针对开头结尾的数据查找效率很低
常见算法的原理以及伪代码
	二分法	冒泡 快拍 插入 堆排 桶排 数据结构(链表 约瑟夫问题 如何链表是否成坏)
"""
查找算法:
1.for循环遍历一次就可以解决
    比如说有一个列表l1 = [12, 21, 32, 43, 56, 76, 87, 98, 123, 321, 453, 565, 678, 754, 812, 987, 1001, 1232]
for num in l1:  # 逐一遍历
    if num == 123:
        print('找到了')
        break
else:
    print('没找到')我想找到123
2.二分法:
def get_midd(l1, target_num):
    if len(l1) == 0:
        print('抱歉没找到')
        return
    midd_index = len(l1)  # 获取列表索引值
    if target_num > l1[midd_index]:  # 比索引中间大小
        right_l1 = l1[midd_index + 1:] # 切片保留右半边
        print(right_l1)
        return get_midd(right_l1, target_num)
    elif target_num < l1[:midd_index]:   # 保留另一半
        left_l1 = l1[:midd_index]
        print(left_l1)  # 针对左边另一半继续二分
        return get_midd(left_l1, target_num)
    else:
        print('找到了')
# get_middle(l1, 987)
# get_middle(l1, 2000)
# get_middle(l1, 12)       

三元表达式

简化步骤1:     代码简单只有一行直接冒号后写
    name = 'linux'
    if name == 'linux':
        print('老师')
    else:
        print('学生')
 三元表达式  # 看的非常的简洁
	res = '老师' if name == 'linux' else '学生'
    print(res)
    
"""
数据值1 if 条件 else 数据值2
条件成立则使用数据值1 条件不成立则使用数据值2

当结果是二选一的情况下 使用三元表达式较为简便
并且不推荐多个三元表达式嵌套
"""    

生成式

name_list = ['jason', 'kevin', 'oscar', 'tony', 'jerry']
# 给列表中所有人名的后面加上_NB的后缀
for循环
new_list = []
for name in name_list:
    data = f'{name}_NB'
    new_list.append(data)
print(new_list)
1.列表生成式:
    # 每次for循环之后再看for循环关键字前面的操作
    new_list = [name + "_NB" for name in name_list]
    print(new_list)
2.字典生成式
    s1 = 'hello world'
    for i,j in enumerate(s1,start=100):
        print(i,j)
    d1 = {i: j for i, j in enumerate('hello')}
    print(d1)
3.集合生成式
    res = {i for i in 'hello'}
    print(res)  
    

匿名函数

没有名字的函数 需要使用关键字# lambda
语法结构
	lambda 形参:返回值
使用场景
	lambda a,b:a+b
匿名函数一般不单独使用 需要配合其他函数一起用

常见内置函数

1.map()  # 映射
	.map()	映射
    l1 = [1, 2, 3, 4, 5]
    # def func(a):
    #     return a + 1
    res = map(lambda x:x+1, l1)   #使用匿名函数
    print(list(res))

2.max()  min()    #最大最小值
    
    l1 = [11, 22, 33, 44]
    res = max(l1)  # 44

	# 映射关系比较
    d1 = {
        'leethon': 100,
        'jason': 8888,
        'lalisa': 99999999,
        'alex': 1000
    }
    # def func(a):  # 传键
    #     return d1.get(a)  # 字典的返回值
    # res = max(d1, key=func)  # key后面跟函数

    res = max(d1, key=lambda k: d1.get(k))  # 根据键值来比较
    print(res)  # lalisa  # 返回的是键

3.reduce    # 传多个值 返回一个值
    from functools import reduce # 导入模块  
    l1 = [11, 22, 33, 44, 55, 66, 77, 88]
    res = reduce(lambda a, b: a * b, l1)#以元组形式计算列表
  	print(res)  # 396    

标签:name,res,算法,二分法,匿名,l1,print,三元
From: https://www.cnblogs.com/lsl1/p/16789635.html

相关文章

  • 算法、表达式与匿名函数
    算法简介1.什么是算法 算法就是解决问题的有效方法不是所有的算法都很高效也有不合格的算法2.算法的应用场景 推荐算法(抖音视频推送淘宝商品推送)成像算法(AI......
  • 二分法
    目录今日内容回顾今日内容详解算法简介及二分法三元表达式各种生成式匿名函数常见内置函数今日内容回顾算法简介及二分法三元表达式各种生成式匿名函数常见内置函数......
  • 二分法、三元表达式及匿名函数
    二分法、三元表达式及匿名函数目录二分法、三元表达式及匿名函数一、算法简介及二分法二、三元表达式三、各种生成式1.列表生成式2.字典生成式3.集合生成式4.元组四、匿名......
  • 算法、三元表达式、匿名函数
    算法、三元表达式、匿名函数目录算法、三元表达式、匿名函数一、算法简介1、算法的概念2、算法的应用场景二、二分法1、二分法查找思路2、二分法使用要求三、三元表达式四......
  • 算法、二分法、函数
    目录算法简介及二分法三元表达式各种生成式/表达式/推导式匿名函数内置函数作业算法简介及二分法1.什么是算法算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解......
  • 算法简介及二分法
    目录算法简介及二分法三元表达式各种生成式/表达式/推导式匿名函数常见内置函数算法简介及二分法1.什么是算法: 算法就是解决问题的有效方法不是所有的算法都很高效也......
  • 算法简介及二分法,三元表达式,各种生成式,匿名函数,常见内置函数
    目录算法简介及二分法,三元表达式,各种生成式,匿名函数,常见内置函数今日内容概要今日内容详细算法简介及二分法三元表达式各种生成式/表达式/推导式匿名函数常见内置函数算法......
  • 算法表达式匿名函数
    目录算法简介与二分法二分法常见算法的原理以及伪代码三元表达式各种生产式、表达式、推导式匿名函数常见内置函数作业算法简介与二分法1.什么是算法 算法就是解决问题......
  • python基础-二分法、生成式、匿名函数、内置函数
    python基础-二分法、生成式、匿名函数、内置函数目录一、算法简介及二分法1.算法2.二分法二、三元表达式三、生成式1.列表生成式2.字典生成式3.集合生成式四、匿名函数五......
  • 16、python函数篇 二分法、三元表达式、生成/推导式、匿名函数、内置函数
    目录一、算法简介之二分法1、什么是算法2、算法的应用场景3、二分法二、三元表达式1、简介及用法三、各种生成式1、列表生成式2、字典生成式3、集合生成式四、匿名函数五、......