当前位置 主页 > 服务器问题 > Linux/apache问题 >

    python之列表推导式的用法

    栏目:Linux/apache问题 时间:2019-12-02 16:17

    1. 定义

    用一行构建代码

    例题

    # 构建一个1-100的列表
    l1 = [i for i in range(1,101)]
    print(l1)
    
    # 输出结果
    [1,2,3,4,5,6,...100]
    

    2. 两种构建方式

    2.1 循环模式: [变量(加工后的变量) for 变量 in iterable]

    例题

    1. 将10以内所有整数写入列表

    print([i for i in range(1,11)])
    # 输出结果
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    

    2. 将10以内所有整数的平方写入列表。

    print([i**2 for i in range(1, 11)])
    

    3. 100以内所有的偶数写入列表.

    print([i for i in range(2, 101, 2)])
    

    4. 从python1期到python100期写入列表list

    print([f'python{i}期' for i in range(1, 101)])
    

    练习题

    l1 = [i*i for i in range(1,11)]
    print(l1)
    
    l2 = [i for i in range(1,101) if i % 2 == 0]
    print(l2)
    
    l3 = [f'python{i}期' for i in range(1,101)]
    
    print(l3)
    
    

    2.2 筛选模式: [变量(加工后的变量) for 变量 in iterable if 条件] 增加一个判断

    例题

    # 构建一个列表,要求元素大于4
    print([i for i in range(11) if i > 4])
    
    # 输出结果:
    [5, 6, 7, 8, 9, 10]
    
    

    练习题

    1. 10以内大于4的数

    # print([i for i in range(11) if i > 4])
    print([i for i in range(1,31) if i % 3 == 0])

    2. 30以内可以被三整除的数。

    # 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
    l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab']
    
    l2 = [i.upper() for i in l1 if len(i) > 3]
    print(l2)
    
    

    3. 找到嵌套列表中名字含有两个‘e'的所有名字(有难度)

    names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
         ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
    # 方法一: 普通方法
    l4 = []
    for i in names:
      for j in i:
        if j.count('e') >= 2:
          l4.append(j)
    print(l4)
    
    # 方法二: 列表推导式方法
    print([j for i in names for j in i if j.count('e') >= 2 ])
    

    3. 列表推导式的优缺点

    优点:
    ​ 简单,快捷,装b

    缺点:
    ​ 可读性不高,不好排错

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。

易波叶平:【ELK】elastalert 日志告警 肖哥哥:Zabbix监控虚拟机服务-告警与自动恢复 高德技术:高德地图驾车导航内存优化原理与实战 月图灵:postgres模糊匹配大杀器 theMine:Mybatis执行流程学习之手写mybatis雏形 MCTW:从手写三层循环到标准实现,矩阵相乘运行效率提高三万六千 Grey Zeng:apijson简单使用 美味的糯米:命令模式与go-redis command设计 晨星1032:AWS IoT Greengrass是什么?V1和V2版本及其差异 努力的老刘:Canal:同步mysql增量数据工具,一篇详解核心知识点 云服务器规格选型 远程桌面连接win系统发生身份验证错误,要求的函数不受支持解决办法 win8系统发生身份验证错误,要求的函数不受支持解决办法 linux远程拷贝到另一个机器文件? linux远程工具有哪些,常用的远程连接Linux工具有哪些? Linux远程管理常见工具PuTTY和SecureCRT对比 linux远程复制文件夹命令进行远程拷贝文件的 scp命令 linux远程复制 linux远程复制拷贝命令使用实例 windows上好用的ssh工具,Windows下连接Linux的三款好用的ssh工具 windows下ssh工具 windows如何ssh远程登录Linux设置免密登录和别名 windows ssh远程登录,windows如何使用ssh登录ubuntu Visual Studio Code(VS Code)查询PostgreSQL拓展安装教程图解 java 如何判断是否是26个英文字母 Vscode上使用SQL的方法 SpringBoot快速迁移至Quarkus的方法步骤 详解Flutter 调用 Android Native 的方法 xftp xshell,Linux下Xshell的安装和 Xftp的安装 mac下怎么安装go语言 介绍python的函数装饰器