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之再深点,更懂list
Sep 20 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
Pycharm更换python解释器的方法
Oct 29 Python
python使用suds调用webservice接口的方法
Jan 03 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
Python提取频域特征知识点浅析
Mar 04 Python
pyqt5利用pyqtDesigner实现登录界面
Mar 28 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
Jun 02 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
浅谈python数据类型及其操作
May 25 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下使用无限生命期Session的方法
2007/03/16 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
JavaScript实现拖拽功能
2020/02/11 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python中的生成器和yield详细介绍
2015/01/09 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
Python将图片转换为字符画的方法
2020/06/16 Python
python 实现UTC时间加减的方法
2018/12/31 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
django注册用邮箱发送验证码的实现
2021/04/18 Python
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
教你使用pyinstaller打包Python教程
2021/05/27 Python
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js