• 三元表达式 生成器表达式 匿名函数 内置函数


    三元表达式

    可以将if... else .. 分支变成一行

    语法:

    ​ 条件成立返回左边的值 if 判断条件 else 条件不成立返回右边的值

    #if 判断条件
    #	执行
    #else:
    #	执行
    #if判断语句
    numb1 = 2
    numb2 = 3
    if numb1 > numb2:
        print(numb1)
    else:
        print(numb2)
     #三元表达式
    numb1 = 1
    numb2 = 2
    numb1 if numb1 >numb2 else numb2
    

    列表生成式

    可以一行实现生成列表

    语法:

    list = [取出的每一个值,任意值 for 可迭代对象中取出的每个值 in 可迭代对象]

    for 的右边是循环次数,并且可以取出可迭代对象中的每一个值

    for 的左边可以为当前列表添加值

    list =[ 值 for 可迭代对象中取出的每一个值 in 可迭代对象]

    #将list1中的值,依次取出,添加到new_list中
    list1 = [1, 2, 3, 4]
    new_list = []
    for i in list1:
        new_list.append(i)
        
    print(new_list)
    
    

    生成器表达式

    就是生成器生成式

    ---列表表达式: 数据量小时采用

    ​ [list for line in range(1,6)] -----> [1, 2, 3, 4, 5 ]

    优点:  可以依赖索引取值,取值方便
    

    ​ 缺点:浪费资源

    ---生成器表达式: 数据量大时采用

    ​ () ----> 返回生成器

    ​ (line for line in range(1,6)) ---> g生成器(1, 2, 3, 4, 5)

    ​ 优点: 节省资源

    ​ 缺点:取值不方便

    #生成一个有1000个值的生成器
    g = (line for line in range(1,1001))
    print(g)
    #列表生成式实现
    list1 = [line for line in range(1,1001)]
    print(list1)
    

    匿名函数

    没有名字的函数

    :左边是参数,:右边是返回值

    lambda :

    注意: 由于没有名字

    匿名函数需要一次性使用

    匿名函数单独使用毫无意义,需要配合内置函数一起使用才有意义

    内置函数

    内置函数:range() 、 print()、len()

    python 内部提供的内置方法:

    max、 min、sorted、map、 filter

    max 求最大值 min 求最小值

    list1 = [1, 2, 3, 4, 5]

    max 内部会将list1 中的通过for 取出每一个值,并进行判断

    print(max(list1))

    dict1 = {
        'tank': 1000,
        'egon': 500,
        'sean': 200,
        'jason': 50
    }
    print(min(dict1, key=lambda x : dict1[x]))
    
    # sorted 排序 默认升序    reverse: 反转  reverse 默认 False
    
    """
    map : 映射
    	map(函数地址,可迭代对象)  ---> map 对象 
    map 会将可迭代对象中的每一个值进行修改,然后映射一个 map对象
    可以再将 map 对象转换成列表/元祖
    注意:只能转换一次 
    
    reduce : 合并
    	reduce(函数地址,可迭代对象,初始值)
    	reduce中,初始值默认为0 
    
    filter: 过滤
        filter(函数地址,可迭代对象)
    """
    

    map 映射 (使用方法)

    name_list = ['egon', 'jason', 'sean', 'tank']
    map_obj = map(lambda name: name + '喜欢吃生蚝' if name == 'tank' else name + 'dsb', name_list)
    print(map_obj)
    print(list(map_obj))
    打印结果:
    <map object at 0x00000182D780E488>
    ['egondsb', 'jasondsb', 'seandsb', 'tank喜欢吃生蚝']
    

    reduce 合并 (用法)

    #注意,reduce 无法单独使用 需要先调用
    from functools import reduce 
    每次从可迭代对象中获取两个值进行合并
    reduce(lambda x, y : x + y, rangr(1, 101), 0)
    需求:
    	求1--100的和
    普通:
    init = 0
    for i in rang(1,100):
        init += i
    print(init)
    
    
    reduce :
    from functools import reduce
    res = reduce(lambda x, y : x + y, range(1,101), 0)
    print(res)
    

    filter 过滤 (用法)

    name_list = ['egon_dsb', 'sean_dsb', 'jason_dsb', 'tank']
    
    filter_obj = filter(lambda name: name.endswith('_dsb'), name_list)
    
    print(filter_obj)
    print(list(filter_obj))
    
  • 相关阅读:
    【科普杂谈】计算机按下电源后发生了什么
    【VS开发】使用WinPcap编程(1)——获取网络设备信息
    【VS开发】使用WinPcap编程(1)——获取网络设备信息
    微信公众平台消息接口PHP版
    编码gbk ajax的提交
    mysql 查询
    js cookie
    js同域名下不同文件下使用coookie
    去掉A标签的虚线框
    jquery切换class
  • 原文地址:https://www.cnblogs.com/127-2933/p/11867963.html
Copyright © 2020-2023  润新知