Python实战171201筛选数据
Posted 三天泪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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} #过滤
以上是关于Python实战171201筛选数据的主要内容,如果未能解决你的问题,请参考以下文章
python处理Excel实现自动化办公教学(数据筛选公式操作单元格拆分合并冻结窗口图表绘制等)
python数据分析案例实战——融360客户贷款风险预测(信用卡)
Python 网络爬虫实战:爬取南方周末新闻文章(带关键词筛选)