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 相关文章推荐
在GitHub Pages上使用Pelican搭建博客的教程
Apr 25 Python
详解Django中Request对象的相关用法
Jul 17 Python
Python字符串特性及常用字符串方法的简单笔记
Jan 04 Python
python遍历目录的方法小结
Apr 28 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Python实现图片添加文字
Nov 26 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
TensorFlow内存管理bfc算法实例
Feb 03 Python
Python数据清洗工具之Numpy的基本操作
Apr 22 Python
Django migrate报错的解决方案
May 20 Python
Python实现对齐打印 format函数的用法
Apr 28 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
linux下 C语言对 php 扩展
2008/12/14 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
python代码实现图书管理系统
2020/11/30 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
乡镇交通安全实施方案
2014/03/29 职场文书
生产车间标语
2014/06/11 职场文书
公司授权委托书范文
2014/09/21 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
教师教育教学随笔
2015/08/15 职场文书
js实现上传图片到服务器
2021/04/11 Javascript