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 正则表达式(转义问题)
Dec 15 Python
Python中动态检测编码chardet的使用教程
Jul 06 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 Python
pycharm运行出现ImportError:No module named的解决方法
Oct 13 Python
详解如何为eclipse安装合适版本的python插件pydev
Nov 04 Python
Python创建或生成列表的操作方法
Jun 19 Python
Form表单及django的form表单的补充
Jul 25 Python
django 微信网页授权登陆的实现
Jul 30 Python
python画蝴蝶曲线图的实例
Nov 21 Python
python构造函数init实例方法解析
Jan 19 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
node.js超时timeout详解
2014/11/26 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
解读Python中degrees()方法的使用
2015/05/18 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
Python实现弹球小游戏
2020/08/01 Python
python如何实时获取tcpdump输出
2020/09/16 Python
python 实现控制鼠标键盘
2020/11/27 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
《纸船和风筝》教学反思
2014/02/15 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
思想政治表现评语
2015/01/04 职场文书
关于迟到的检讨书
2015/05/06 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
python办公自动化之excel的操作
2021/05/23 Python