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是编译运行的验证方法
Jan 30 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
Jul 02 Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 Python
python判断是空的实例分享
Jul 06 Python
使用Python封装excel操作指南
Jan 29 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
建站常用13种PHP开源CMS比较
2009/08/23 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
微信小程序实现星星评分效果
2020/11/01 Javascript
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
python通过实例讲解反射机制
2019/10/17 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
挂科检讨书范文
2014/02/20 职场文书
闭幕式主持词
2014/04/02 职场文书
航空学院求职信
2014/06/11 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
PYTHON InceptionV3模型的复现详解
2022/05/06 Python