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完全新手教程
Feb 08 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python中Class类用法实例分析
Nov 12 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
Python脚本按照当前日期创建多级目录
Mar 01 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
python清空命令行方式
Jan 13 Python
Python日志处理模块logging用法解析
May 19 Python
什么是Python变量作用域
Jun 03 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
python解释器安装教程的方法步骤
Jul 02 Python
Python Pandas数据分析工具用法实例
Nov 05 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
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
英国在线花园中心:You Garden
2018/06/03 全球购物
老师推荐信
2013/10/28 职场文书
承认错误的检讨书
2014/01/30 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
客户答谢会致辞
2015/01/20 职场文书
大队委员竞选稿
2015/11/20 职场文书
大学军训口号大全
2015/12/24 职场文书
九年级化学教学反思
2016/02/22 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
微信小程序实现录音Record功能
2021/05/09 Javascript
Python多个MP4合成视频的实现方法
2021/07/16 Python