• 【python基础】列表推导式


    推导表达式

    列表、集合、字典以及生成器都可以使用推导式来创建;

    # 列表
    res = [ord(x) for x in 'spaam']
    # output >>> res
    [115, 112, 97, 97, 109]
    
    # 集合
    res = {ord(x) for x in 'spaam'}
    # output >>> res
    {112, 97, 115, 109}
    
    # 字典
    res = {x: ord(x) for x in 'spaam'}
    # output >>> res
    {'s': 115, 'p': 112, 'a': 97, 'm': 109}
    
    # 生成器
    res = (ord(x) for x in 'spaam')
    # output >>> res
    <generator object <genexpr> at 0x0000025AEC10CC10>
    
    

    推导公式

    # 列表推导式
    [<表达式> for <变量> in <可迭代对象> if <逻辑条件>]
    
    # 字典推导式
    {<键值表达式>:<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>}
    
    # 集合推导式
    {<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>}
    
    # 生成器推导式
    (<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>)
    ## 返回一个生成器对象,也是可迭代对象,但是生成器并不立即产生全部元素,仅在要用到元素的时候才生成,可以极大节省内存
    

    列表推导式

    列表推导式是写在一个方括号中,构建一个新的列表的方式;

    在日常使用当中,使用列表推导式替代for循环语句可以提高执行效率;

    简单的列表推导式

    # 推导式形式
    L = [1, 2, 3, 4, 5]
    res = [i + 10 for i in L]
    
    # for循环语句形式
    
    res = []
    for i in L:
        res.append(i + 10)
        
    # output >>> res
    [11, 12, 13, 14, 15]
    
    

    推导公式

    [输出表达式 for 变量 in 输入序列]
    

    嵌套循环(for)

    两个不同的列表
    # 推导式形式
    res = [x + y for x in 'abc' for y in 'efg']
    
    # for循环语句形式
    res = []
    for x in 'abc':
        for y in 'efg':
            res.append(x + y)
    
    # output >>> res
    ['ae', 'af', 'ag', 'be', 'bf', 'bg', 'ce', 'cf', 'cg']
    

    推导公式

    [输出表达式 for 变量1 in 输入序列1 for 变量2 in 输入序列2]
    
    一个列表
    # 推导式形式
    L = ['abcdef', 'gggg']
    res = [print(i) for x in L for i in x]
    
    # for循环语句形式
    for x in L:
        for i in x:
            print(i)
            
    # output >>> 
    a
    b
    c
    d
    e
    f
    g
    g
    g
    g
    

    推导公式

    [输出表达式 for 变量1 in 输入序列 for 变量2 in 变量1]
    

    for 与 if 组合

    # 推导式形式
    L = [1, 2, 3, 4, 5]
    res = [i for i in L if i > 3]
    
    # for循环与if分句组合形式
    res = []
    for i in L:
        if i> 3:
            res.append(i)
    
    # output >>> res
    [4, 5]
    
    

    推导公式

    [输出表达式 for 变量 in 输入序列 if 可选的判断表达式]
    # 输出表达式,产生最终列表的元素
    # 变量,表示输入序列里面的元素
    # 输入序列
    # 可选的判断表达式
    
    关于文章迁CSDN https://blog.csdn.net/weixin_40960688
  • 相关阅读:
    elasticsearch为什么比mysql快
    elasticsearch(lucene)索引数据过程
    UidGenerator springboot2集成篇
    StampedLock的理解和使用
    EsClientRHL-elasticsearch java客户端开源工具
    Spring只定义接口自动代理接口实现类
    浅谈浏览器存储(cookie、localStorage、sessionStorage)
    图片无缝拼接
    js中变量的连续赋值
    web页面ios浏览器img图片的坑
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/14961495.html
Copyright © 2020-2023  润新知