如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧
实际案例:
1.过滤掉列表 [3,9,-1,10,20,-2..]的负数
2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项
3.筛出集合 {77,89,32,20..}中能被3整出的元素
---最通用方法,FOR循环迭代,加上if判断进行过滤
例如:

这样写的问题: 在Python里显得很啰嗦,效率也很差!
解决方案---
列表

列子:
列表解析:

'''
filter函数
filter(,)接收2个参数,
第一个,传入一个过滤函数,通常用lambda创建一个匿名函数
过滤函数,接受一个参数x,这个x就是每次在列表中,迭代出的元素
返回一个布尔值,布尔值为假,元素就被抛弃掉
第二个参数就是要过滤的列表
filter
在python2.7中,会直接返回一个列表
在python3中,会返回一个生成器对象
如果python3实现正确结果放在一个列表中,需要:
把生成器对象,直接传给列表构造器
**生成器对象是一次性的,如果next已经消耗掉,需要重新创建

总结:
推荐列表解析,更加简单,无需创建函数对象,速度更快
字典:


集合


如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧的更多相关文章
- python基础一 -------如何在列表字典集合中根据条件筛选数据
如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- 如何快速查找到多个字典中的公共键(Key)---Python数据结构与算法相关问题与解决技巧
如何快速查找到多个字典中的公共键(Key)-? 实际案例: 西班牙足球甲级联赛,每轮球员进球统计: 第1轮: { '苏亚雷斯':1,'梅西':2,'本泽马':1,...} 第2轮: { '苏亚雷斯 ...
- 如何根据字典值的大小,对字典中的项排序---Python数据结构与算法相关问题与解决技巧
实际案例: 某班英语成绩以字典形式存储为: { 'LiLei' : 90, 'Jim' : 88, 'Lucy': 92 } 如何根据成绩高低,计算学生排名 -- 根据分数,进行排名,并且把排名信息添 ...
- 如何让字典保持有序---Python数据结构与算法相关问题与解决技巧
实际案例: 某编程竞赛系统,对参赛选手编程解体进行计时,选手完成题目后,吧该选手解体用时记录到字典中,以便赛后按选手名查询成绩 {'Lilei':(2,43),'HanMei':(5,52),'Jim ...
- 如何统计序列中元素的频度---Python数据结构与算法相关问题与解决技巧
实际案例: 1. 某随机序列 [12,5,6,4,6,5,5,7]中,找到出现次数最高的3个元素,它们出现的次数是多少? 2. 对于某英文文章的单词,进行词频统计,找到出现次数最高的10个单词,它们出 ...
- 如何为元组中的每个元素命名,提高程序可读性---Python数据结构与算法相关问题与解决技巧
实际案例: 学生信息系统中,数据为固定格式:(名字,年龄,性别,邮箱) ,通常使用元组来存储 使用优点: 使用元组最大的优点在于节省空间,存储相同的数据,使用元组比使用字典,空间小很多 使用缺点: 访 ...
- python数据结构-如何在列表、字典、集合中根据条件筛选数据
如何在列表.字典.集合中根据条件筛选数据 问题举例: 过滤列表[1, 2, 5, -1, 9, 10]中的负数 筛选字典{“zhangsan”:97, "lisi":80, &qu ...
- Py小技巧一:在列表,字典,集合中根据条件筛选数据
1.过滤掉列表中的某些项---列表解析 data=[1,4,2,8,5,-1] res=[] a.依次迭代列表中每一个项 for x in data: if >=0: res.append(x) ...
随机推荐
- jvm学习(5) 对象的创建与结构
上图表明:jvm虚拟机位于操作系统的堆中,并且,程序员写好的类加载到虚拟机执行的过程是:当一个classLoder启动的时候,classLoader的生存地点在jvm中的堆,然后它会去主机硬盘上将A. ...
- python-批量解压zip、rar文件
这是一个用python写解压大量zip脚本的说明,本人新手一个,希望能对各位有所启发. GitHub:https://github.com/lgf133214/Windows-python3- 首先要 ...
- hdu6333 Problem B. Harvest of Apples(组合数+莫队)
hdu6333 Problem B. Harvest of Apples 题目传送门 题意: 求(0,n)~(m,n)组合数之和 题解: C(n,m)=C(n-1,m-1)+C(n-1,m) 设 ...
- style中各种选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- React Native实践总结一
一.React的世界观1.通过改变state来改变视图视图不用考虑如何改变自己,把state画出来即可.2.变量不可变通过创建一个新的state来更改state,使得变更可追踪,不容易因为其他部分修改 ...
- XMPP即时通讯协议使用(一)——Openfire安装
Openfire服务器安装 下载地址:https://www.igniterealtime.org/downloads/index.jsp,根据你的操作系统,选择对应的下载版本.本文选择的是openf ...
- A星寻路
逻辑代码 using System.Collections.Generic; using System.Text; using UnityEngine; namespace Game { public ...
- MyEclipse创建maven项目时报: org.apache.maven.archiver.MavenArchiver.getManifest 错误
创建项目报错,如图: 原因就是maven的配置文件不是最新的,MyEclipse2014解决方法: 1.help ->Install New sitie... 2.点击add 3.填写name和 ...
- python关键字global和nonlocal总结
函数中使用全局变量 a = 100 b = 200 def func(): def sub(): return b return a + b + sub() 执行fun()后返回值为:500 a, b ...
- ELKStack之极速入门(上)
ELKStack之极速入门(上) 链接:https://pan.baidu.com/s/1V2aYpB86ZzxL21Hf-AF1rA 提取码:7izv 复制这段内容后打开百度网盘手机App,操作更方 ...