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连接oracle数据库实例
Oct 17 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
Python下载网络文本数据到本地内存的四种实现方法示例
Feb 05 Python
查看django版本的方法分享
May 14 Python
详解Python字典小结
Oct 20 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
python使用openpyxl操作excel的方法步骤
May 28 Python
python dir函数快速掌握用法技巧
Dec 09 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 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
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
js变量以及其作用域详解
2020/07/18 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
Python 26进制计算实现方法
2015/05/28 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
Java的基础面试题附答案
2016/01/10 面试题
How to spawning asynchronous work in J2EE
2016/08/29 面试题
家长写给孩子的评语
2014/04/18 职场文书
英文演讲稿
2014/05/15 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
学校重阳节活动总结
2015/03/24 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers