zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    WebStorm 在 Mac 版本的基本设置,包括 ES6、Node.js、字体大小等
    Mac 找文件或文件夹,以及开启其他程序,截图快捷键
    windows 全局安装 express 但无法命令行执行
    17_11_3 Mysql 联合查询
    17_11_1 Mysql 创建表并设置主键自增 + 排序 +外键
    PLC
    17_10_31 ./ ../ / ~/的区别
    17_10_30 Mac qq可以登录但是网页打不开
    17_10_26 面试汇总
    17_10_25 SSH 框架
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/14961495.html
Copyright © 2011-2022 走看看