python 学习笔记(一):在列表、字典、集合中根据条件筛选数据
一、在列表中筛选数据
在列表中筛选出大于等于零的数据,一般通用的用法代码如下:
data = [3, -9, 0, 1, -6, 3, -2, 8, -6] #要筛选的原始数据列表
result = [] #存放筛选结果的列表
for x in data: #依次迭代循环每个元素
if x >= 0: #判断是否符合筛选条件
result.append(x) #大于等于零就将该元素加入结果列表中
print(result) #打印输出
在python 中还有更加简洁高效的方法:
1、filter函数:
from random import randint
#生成一个包含10个随机数的列表,每个元素的取值范围在-10到10之间
data = [randint(-10, 10) for _ in range(10)]
#filter函数的第一个参数是过虑函数,通常使用lambda匿名函数,第二个参数是要过滤的列表
result = filter(lambda x: x >=0, data)
print(result)
2、列表解析:
...
result = [x for x in data if x >= 0]
...
二、在字典中筛选数据
在字典中根据值来筛选数据,下面的例题是筛选出分数大于等于90分同学的代码:
from random import randint
#同学姓名列表,用字母简化代表同学姓名
students = ['x', 'y', 'z', 'a', 'b', 'c', 'g', 'k', 'j']
#迭代循环姓名列表,随机生成每个同学的分数
data = {s: randint(60, 100) for s in students}
#根据分数来筛选过滤字典中的每个元素
result = {k:v for k, v in data.items() if v >= 90}
print(result)
三、在集合中筛选数据
在集合中筛选数据的操作和字典非常相似,只是略去键值之间的冒号。下面是在集合中筛选出能整除3的元素的代码:
from random import randint
#生成包含20个随机数的列表,元素的取值范围为1到100之间
data = [randint(1, 100) for _ in range(20)]
#将列表转换为集合,去除重复元素
my_set = set(data)
#筛选出能整除3的元素
result = [x for x in my_set if x%3 == 0]
print(result)
python 学习笔记(一):在列表、字典、集合中根据条件筛选数据的更多相关文章
- python基础一 -------如何在列表字典集合中根据条件筛选数据
如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧
实际案例: 1.过滤掉列表 [3,9,-1,10,20,-2..]的负数 2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项 3.筛出集合 {77,89, ...
- 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) ...
- python3编程技巧二——如何在列表、字典、集合 中根据条件筛选数据
一.列表筛选数据 # coding=utf-8 from random import randint # 创建随机列表 l = [randint(-10, 10) for i in range(10) ...
- python基础===如何在列表,字典,集合中根据条件筛选数据
#常见的操作如下: data = [1, 5, -3, -2, 6, 0, 9] res = [] for x in data: if x>=0: res.append(x) print(res ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- python学习笔记(一)、列表和元祖
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.通用的序列操作 有几种操作适用于所有序列,包括索引.切片.相加.相乘和成员资格检查.另外,Pyt ...
随机推荐
- pv与pvc
目的: 为了屏蔽底层存储实现的细节, 让用户方便使用同时让管理员方便管理, 引入了pv与pvc两种资源对象实现对存储的管理子系统 pv: 对底层网络共享存储的抽象, 将共享存储定义为一种资源 pvc: ...
- Hadoop_08_客户端向HDFS读写(上传)数据流程
1.HDFS的工作机制: HDFS集群分为两大角色:NameNode.DataNode (Secondary Namenode) NameNode负责管理整个文件系统的元数据 DataNode 负责管 ...
- nginx之root和alias区别
alias实现虚拟目录 alias与root的用法区别 最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录.另外,根据前文 ...
- RestTemplate响应值乱码
@Bean public RestTemplate getRestTemplate(){ RestTemplate restTemplate = new RestTemplate(); //解决中文乱 ...
- WCF概述
Tips:概念性的东西仅助理解,可以略过 概述 1.SOA概述 1).从三个问题开始 SOA是什么——面向服务架构.一种编程模式.一种架构模式.它将应用程序分成不同功能(服务)单元,再通过服务之间的接 ...
- 【Winfrom-Button】 重写Button,去掉获取焦点时的边框
Winfrom Button 去掉获取焦点时的边框: 自定义一个Button,重写ShowFocusCues方法 /// <summary> /// 去掉获取焦点的边框 /// </ ...
- The Cost of JavaScript --------引用
tl;dr: 想要保持页面的快速运行,你需要仅加载当前页面所需的 JavaScript 代码.优先考虑用户所需,之后运用代码分离懒加载其他内容. Is it happening - 在这个时期,你可以 ...
- 解决SpringBootApplication右键没有启动项的问题
转载于 https://blog.csdn.net/weixin_41876599/article/details/82711302 感觉很有用
- 31. ClustrixDB 分布式架构/查询优化器
ClustrixDB查询优化器有何不同 ClustrixDB查询优化器的核心是能够执行一个具有最大并行性的查询和多个具有最大并发性的并发查询.这是通过分布式查询规划器和编译器以及分布式无共享执行引擎实 ...
- shareSDK集成遇到的问题汇总
问题一.平台添加应用时需要输入的签名(下图)的获取方式 第一步.通过android studio生成签名保存在本地 第二步.查看签名的信息 问题二.由于同事集成了QQ登录和微信登录,后来又需要加入微博 ...