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使用Scrapy爬取妹子图
May 28 Python
python开发之thread线程基础实例入门
Nov 11 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
python 字典(dict)按键和值排序
Jun 28 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python3 下载网络图片代码实例
Aug 27 Python
解决python 文本过滤和清理问题
Aug 28 Python
Pytorch之parameters的使用
Dec 31 Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
Jupyter notebook如何实现指定浏览器打开
May 13 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递归创建和删除文件夹的代码小结
2012/04/13 PHP
如何使用Strace调试工具
2013/06/03 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python设计模式大全
2016/06/27 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
.net笔试题
2014/03/03 面试题
师范毕业生个人求职信
2013/12/09 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
预备党员公开承诺书
2014/05/28 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
怎样写观后感
2015/06/19 职场文书
校园安全主题班会
2015/08/12 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android