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实现QQ游戏大家来找茬辅助工具
Sep 14 Python
python利用datetime模块计算时间差
Aug 04 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
Jun 20 Python
解决Django加载静态资源失败的问题
Jul 28 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
OpenCV Python实现图像指定区域裁剪
Mar 12 Python
python实现计算图形面积
Feb 22 Python
关于python类SortedList详解
Sep 04 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
php strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python数据结构树和二叉树简介
2014/04/29 Python
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
Python面向对象基础入门之编码细节与注意事项
2018/12/11 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
python 循环数据赋值实例
2019/12/02 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
浅析Python中字符串的intern机制
2020/10/03 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
酒店总经理助理岗位职责
2014/02/01 职场文书
教师党员公开承诺书
2014/03/25 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
优秀志愿者感言
2015/08/01 职场文书
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python