Python实用技巧之列表、字典、集合中根据条件筛选数据详解


Posted in Python onJuly 11, 2018

通用做法:迭代

以列表为例:

筛选出下列数字大于等于0的数

data = [2, 7, -4, -1, 3, 0, 8]
res = []
for i in data:
 if i >= 0:
  res.append(i)
print(res)

运行结果:

[2, 7, 3, 0, 8]

奇淫巧技——列表筛选

使用filter函数

随机生成一组正负数皆有的数,筛选出大于等于0的数

flilter(function or None, iterable)

from random import randint
data = [randint(-10,10) for _ in range(10)]
# filter 接收两个参数,第一个参数为过滤条件,第二个参数为过滤范围
f = filter(lambda x: x>=0, data)
for j in f:
 print(j)

使用列表解析(列表推导式)

随机生成一组正负数皆有的数,筛选出大于等于0的数

from random import randint
data = [randint(-10,10) for _ in range(10)]
f = [i for i in data if i >= 0]
print(f)

使用timeit测试两种方法的运行速度得到:使用列表解析的速度更快,但二者皆比通用做法迭代要快

奇淫巧技——字典筛选

假设有20个学生,学生分数在60-100之间,筛选出成绩在90分以上的学生

import random
dict = {i: random.randint(60, 100) for i in range(1, 21)}
# print(dict)
# 根据值过滤除分数高于90的人
res = {k: v for k, v in dict.items() if v > 90}
print(res)

奇淫巧技——集合筛选

10个随机的正负数,筛选出可以和2整除的数字

import random
data = set(random.randint(-10,10) for _ in range(10))
# print(data)
# 筛选集合中能被2整除的数
res = {i for i in data if i % 2 ==0}
print(res)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
使用基于Python的Tornado框架的HTTP客户端的教程
Apr 24 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
Python爬虫信息输入及页面的切换方法
May 11 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Python将string转换到float的实例方法
Jul 29 Python
Python networkx包的实现
Feb 14 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
python 如何在测试中使用 Mock
Mar 01 Python
Python预测分词的实现
Jun 18 Python
Python函数式编程中itertools模块详解
Sep 15 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 #Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 #Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 #Python
Python批处理删除和重命名文件夹的实例
Jul 11 #Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 #Python
通过python顺序修改文件名字的方法
Jul 11 #Python
对python3 一组数值的归一化处理方法详解
Jul 11 #Python
You might like
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
window.open的功能全解析
2006/10/10 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
用原生js做单页应用
2017/01/17 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
详解用python写一个抽奖程序
2019/05/10 Python
python3字符串操作总结
2019/07/24 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
Python如何输出警告信息
2020/07/30 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
校园安全广播稿范文
2014/09/25 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS