zoukankan      html  css  js  c++  java
  • Python实战171201筛选数据

    Python应用:网络编程,系统网络运维,3D游戏开发,图形界面开发,科学与数字计算,web后端。

     对着慕课的练习,果然慕课的实战也是差距很大-------centos7 -Python3.6.3

    筛选数据:

        通常做法就是迭代if。

    --------去除负数------------

          data = [1,2,3,4,5,6,7,-2,-3,-7]

          res = [ ]

          for x in data:

            if x>=0:

              res.append(x)

          print res

    -------------------------------

    列表

    >>>import random

      #载入模块,当然这个模块也是需要熟悉的

    >>>data=[random.randint(-10,20) for _ in range(10)]

      #Python3中没有xrange,range替换xrange了,当然第一学就记住range变成一个生成器了。性能优化结果

    >>>print (date)  >>>date

      #Python3print都是带括号的,感觉像是回归c呢?

    >>>list(filter(lambda x :x>=0,data))  #函数式编程

      #python3中貌似都需要加个list这种壳么?为了优化性能  filter函数:filter()为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中

    >>>[x for x in data if x>=0]  #列表解析

    >>>timeit('[x for x in data if x>=0]','data=[1,2,3,4,5,6,7,-2,-3,-7],number=1000000')

      # timeit(函数名_字符串,运行环境_字符串,number=运行次数)默认就是一百万

    >>>timeit('filter(lambda x:x>=0,data)','data=[1,2,3,-1,-2,4]')

      #timeit只接受有且唯一 一个环境。。。。。。哇,这句话因为少个逗号让我好一阵郁闷

      #然后就是比对时间咯,发现列表解析速度不是最快!!!,嗨呀真是信了你去年的结论

    当然老师说的是对的,前提是显示数据,而不是处理数据!

     字典

     >>>d={x:random.ranint(60.100) for x in ranger(1,21)}  #创立字典

    >>>d  >>>print (d)  #显示集合

    >>>{k:v for k,v in d.items() if v > 80}  >>>{k:v for k,v in _.items() if v > 80}  #过滤

     集合

    >>>s=set(data)  #创立集合

    >>>s  >>>print(s)  #显示集合

    >>>{x for x in s if x%3==0}  #过滤

  • 相关阅读:
    JavaScript的作用域
    background的水平条纹和斜向条纹
    CSS currentColor 变量的使用
    pop()和attr()的用法和区别
    指向构造函数的属性值
    OKHTTP缓存max-age和max-stale详解
    js数据类型
    css两列布局之基于BFC规则实现
    vue中央事件总线eventBus的简单理解和使用
    git push 时提示用户名或密码相关错误信息
  • 原文地址:https://www.cnblogs.com/3daytears/p/8047371.html
Copyright © 2011-2022 走看看