python如何在列表、字典中筛选数据


Posted in Python onMarch 19, 2018

python如何在列表、字典中筛选数据?

实际问题有哪些?

1.过滤掉列表[3,9,-1,10.-2......] 中负数
2.筛选出字典

{‘li_ming':90,'xiao_hong':60,'li_kang':95,'bei_men':98} 中值高于90的项

3.筛选出集合{3,9,-1,10.-2......]中能被3整除的数

问题1如何解决?

最普通方法:

#!/usr/bin/python3
 
 
def filter_l(data):
 res = []
 for i in data:
  if i > 0:
   res.append(i)
 return res
 
if __name__ == '__main__':
 data = [3, 9, -1, 10, -2]
 new_l = filter_l(data)
 print(new_l)

如何解决列表问题?

初始化列表: 生成 -10 到 10 的随机数列表,去除负数

1. filter方法:

#!/usr/bin/python3
 
from random import randint
 
 
def filter_l(data):
 # 循环data列表,把值一个一个取出 交个lambda中x,如何lambda函数为True,返回x生成一个新的filter对象
 return filter(lambda x: x >= 0, data)
 
if __name__ == '__main__':
 # 列表生成10个 -10 到 10 的随机数
 data = [randint(-10, 10) for _ in range(10)]
 print(data)
 # new_l 为可迭代对象
 new_l = filter_l(data)
 print(list(new_l), type(new_l))

2. 列表解析:

#!/usr/bin/python3
 
from random import randint
 
 
def filter_l(data):
 # 循环data列表,把值一个一个取出 是否满足if条件,满足True返回x生成一个新列表
 return [x for x in data if x >=0 ]
 
if __name__ == '__main__':
 # 列表生成10个 -10 到 10 的随机数
 data = [randint(-10, 10) for _ in range(10)]
 print(data)
 # new_l 为可迭代对象
 new_l = filter_l(data)
 print(list(new_l), type(new_l))

运行速度比较:解析 > filter > 普通

如何解决字典?

字典解析,筛选数据:

#!/usr/bin/python3
 
from random import randint
 
 
def filter_l(data):
 print(data.items())
 # 把字典转换成dict_items,循环里面的key和value,满足if条件返回对应的key和value值
 return {k: v for k, v in data.items() if v > 90}
 
if __name__ == '__main__':
 # 字典生成式
 data = {x: randint(0, 100) for x in range(10)}
 print(data)
 new_l = filter_l(data)
 print(new_l, type(new_l))

如何解决集合问题?

#!/usr/bin/python3
from random import randint
 
 
def filter_l(data):
 # 迭代集合中值,满足条件为True返回x
 return {x for x in data if x % 3 == 0}
 
if __name__ == '__main__':
 # 集合生成式
 data = {randint(0, 100) for x in range(10)}
 print(data)
 new_l = filter_l(data)
 print(new_l, type(new_l))

如何逻辑整理?

无论是解析器还是普通方法,都需要for循环,if判断,逻辑都是满足条件返回值,过滤出满足条件的值,无论是生成器还是解析器都满足这个格式:“ 返回值 for循环 if判断 “,通过lambda满足格 式:“lambda 输入值:条件, 格式化数据

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 代码性能优化技巧分享
Aug 07 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
python实现抽奖小程序
Apr 15 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
Python爬虫学习之翻译小程序
Jul 30 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
python实现录屏功能(亲测好用)
Mar 02 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
Python中读取文件名中的数字的实例详解
Dec 25 Python
Python中request的基本使用解决乱码问题
Apr 12 Python
Elasticsearch 数据类型及管理
Apr 19 Python
python素数筛选法浅析
Mar 19 #Python
python实现堆和索引堆的代码示例
Mar 19 #Python
python实现一个简单的并查集的示例代码
Mar 19 #Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 #Python
python将每个单词按空格分开并保存到文件中
Mar 19 #Python
python将文本分每两行一组并保存到文件
Mar 19 #Python
python: line=f.readlines()消除line中\n的方法
Mar 19 #Python
You might like
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
php模板函数 正则实现代码
2012/10/15 PHP
如何离线执行php任务
2017/02/21 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
js实现网页随机验证码
2020/10/19 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
python里dict变成list实例方法
2019/06/26 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
Python with标签使用方法解析
2020/01/17 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
年度考核自我鉴定
2014/02/02 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
动物科学专业求职信
2014/07/27 职场文书
诚信高考倡议书
2019/06/24 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
基于Python实现西西成语接龙小助手
2022/08/05 Golang