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

 

posted @   三天泪  阅读(2373)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示