前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在列表,字典、集合中筛选数据——进阶学习

如何在列表,字典、集合中筛选数据——进阶学习

作者头像
Gorit
发布2021-12-09 15:27:02
2.2K0
发布2021-12-09 15:27:02
举报
文章被收录于专栏:Gorit 带你学全栈系列

一、筛选数据

引言

生活中, 我们会遇到各种各样的数据,但是总得需要容器去装它们,python中的数据结构——列表,元组,字典就能派上用场,但是数据多了起来,我们有时候需要进行筛选就可以用到下面的一些方法

比如给定一个列表,让我们剔除里面的负数,我们通常想到的是迭代法

代码语言:javascript
复制
[1,22,-4,3,-9,8]

看代码

代码语言:javascript
复制
a = [1,22,-4,3,-9,8]

b = []
for i in a:
    if(i>0):
        b.append(i)

print(b)

今天就要讲讲其它的办法来解决这些问题

一、列表解决方案

1、 先生成一个随机的列表 2、运用列表解析的方式去实现数据筛选

代码如下:

代码语言:javascript
复制
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个人,我们要进行筛选分数及格的同学

代码语言:javascript
复制
from random import randint
a = {x:randint(0,100) for x in range(1,26)}
print(a)

有列表解析,同样也有字典解析

代码语言:javascript
复制
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)
三、集合解决方案

借用列表解决方案中生成随机列表的例子,我们直接把其转换成集合的形式

代码语言:javascript
复制
from random import randint
a = [randint(-10,10) for i in range(1,11)]
print(a)

b = set(a) #把列表a变成集合
print(b)

我们再进行一个特殊的筛选,我们要得到能被5整除的数,这里要用到集合解析

代码语言:javascript
复制
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)

方法和列表解析一模一样!!!

所以,你学会了嘛

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/02/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、筛选数据
    • 引言
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档