• python 推导式


    推导式又称解析式,是Python的一种独有特性。目的是可以从一个数据序列推导出另一个数据序列,适用于python 的list ,dict 和集合

    list中的推导式:

    _list=[i for i in 迭代器 if 条件]
    #for i in 迭代器 if 条件就是一个表达式,将这个表达式的所有i加入到list中
    
    #比如:求10以内4的倍数
    list_1=[i for i in range(10) if  i %4 is 0 and i != 0 ]
    #out:[4,8]
    
    #-----表达式获取到的值还可以当做参数传递给函数或者实列,返回值就是list
    
    #比如:获取20以内3的倍数,并将每个数字+10展示
    def add(i):
        return i+10
    list_2=[add(i) for i in range(10) if i %4 is 0 and i != 0]
    #out:[13,16,19,22,25,28]

    dict推导式方式都是类似, 表达式换成返回2个值,接受也换成2个变量接受即可:

    dict_1={'xx':'yy','aa':'bb'}
    #将字典dict_1键值互换
    dict_2={k:v for v,k in dict_1.items()}
    #out:{'yy':'xx','bb','aa'}

    集合推导式和list推导式一样,将[]变成{}就可以了

    set_1={x*x for x in range(5)}
    print(set_1)
    print(type(set_1))
    #out:{0,1,4,9,16}
    #out:<class 'set'>

    还可以利用推到式将list变成生成器,将[]变成(),这样得到的就是一个生成器

    generator_lsit=(i for i in [0,2,1,-1])
    print(type(generator_lsit))
    generator_lsit.__next__()
    #out:<generator object>
    #out:0

    总结来说:推导式可以很方便的让我们得到想得到的数据集合

  • 相关阅读:
    WC2021 游记
    TC11054
    P5904
    CF741D
    CF1467 题解
    [CTSC2008]网络管理 [树剖+整体二分]
    [HNOI2015]接水果[整体二分]
    [SDOI2010]粟粟的书架 [主席树]
    整体二分的一些见解[整体二分学习笔记]
    P2710 数列[fhq treap]
  • 原文地址:https://www.cnblogs.com/guoguojj/p/8778221.html
Copyright © 2020-2023  润新知