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}  #过滤

  • 相关阅读:
    HDU 4472 Count DP题
    HDU 1878 欧拉回路 图论
    CSUST 1503 ZZ买衣服
    HDU 2085 核反应堆
    HDU 1029 Ignatius and the Princess IV
    UVa 11462 Age Sort
    UVa 11384
    UVa 11210
    LA 3401
    解决学一会儿累了的问题
  • 原文地址:https://www.cnblogs.com/3daytears/p/8047371.html
Copyright © 2011-2022 走看看