如何在列表,字典、集合中筛选数据——进阶学习
2023-04-18 14:51:36 时间
一、筛选数据
引言
生活中, 我们会遇到各种各样的数据,但是总得需要容器去装它们,python中的数据结构——列表,元组,字典就能派上用场,但是数据多了起来,我们有时候需要进行筛选就可以用到下面的一些方法
比如给定一个列表,让我们剔除里面的负数,我们通常想到的是迭代法
[1,22,-4,3,-9,8]
看代码
a = [1,22,-4,3,-9,8]
b = []
for i in a:
if(i>0):
b.append(i)
print(b)
今天就要讲讲其它的办法来解决这些问题
一、列表解决方案
1、 先生成一个随机的列表 2、运用列表解析的方式去实现数据筛选
代码如下:
from random import randint
#第一步生成随机数列
data =[randint(-10,10) for _ in range(10)]#在-10到10之间随机生成数列
print(data)
#第二步,用列表解析的方式
b = [x for x in data if x>0]
print(b)
我们通过时间对比,第二种方式的效率比第一种高10倍
二、字典解决方案
我们先生成一个字典,比如生成班上学上的成绩,班上有10个人,我们要进行筛选分数及格的同学
from random import randint
a = {x:randint(0,100) for x in range(1,26)}
print(a)
有列表解析,同样也有字典解析
from random import randint
a = {x:randint(0,100) for x in range(1,11)}
print(a)
b = {k:x for k,x in a.items() if x>60}#同时迭代键和值,然后进行判断
print(b)
三、集合解决方案
借用列表解决方案中生成随机列表的例子,我们直接把其转换成集合的形式
from random import randint
a = [randint(-10,10) for i in range(1,11)]
print(a)
b = set(a) #把列表a变成集合
print(b)
我们再进行一个特殊的筛选,我们要得到能被5整除的数,这里要用到集合解析
from random import randint
a = [randint(-10,10) for i in range(1,11)]
b = set(a) #把列表a变成集合
print(b)
c = {i for i in b if i%3 == 0}
print(c)
方法和列表解析一模一样!!!
所以,你学会了嘛
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!