• 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧


    实际案例:

    1.过滤掉列表 [3,9,-1,10,20,-2..]的负数

    2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项

    3.筛出集合 {77,89,32,20..}中能被3整出的元素

    ---最通用方法,FOR循环迭代,加上if判断进行过滤

    例如: 

    这样写的问题:  在Python里显得很啰嗦,效率也很差!

    解决方案---

     列表

     列子:

     列表解析:

     

    '''
    filter函数
    filter(,)接收2个参数,
    第一个,传入一个过滤函数,通常用lambda创建一个匿名函数
    过滤函数,接受一个参数x,这个x就是每次在列表中,迭代出的元素
    返回一个布尔值,布尔值为假,元素就被抛弃掉
    第二个参数就是要过滤的列表

    filter
    在python2.7中,会直接返回一个列表
    在python3中,会返回一个生成器对象
    如果python3实现正确结果放在一个列表中,需要:
    把生成器对象,直接传给列表构造器
    **生成器对象是一次性的,如果next已经消耗掉,需要重新创建

     总结:

      推荐列表解析,更加简单,无需创建函数对象,速度更快

     字典:

    集合

  • 相关阅读:
    java基础学习——编辑器的使用(一)
    nginx配置文件重写url不带index.php
    解决Too many open files问题
    内存溢出
    NetworkInterface获取主机ip,判断内外网
    克隆
    StringUtil
    Model与Record转换适配
    字符串操作工具类
    利用反射机制动态的调用类信息
  • 原文地址:https://www.cnblogs.com/goddog1024/p/11228873.html
Copyright © 2020-2023  润新知