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

Python每日一练:如何在列表、字典、集合中筛选数据

作者头像
kk大数据
发布2019-08-14 15:37:54
1.8K0
发布2019-08-14 15:37:54
举报
文章被收录于专栏:kk大数据kk大数据

点击上方蓝字关注我,让我成为你的专属小太阳

今天要讲的是,如何在列表、字典、集合中过滤数据,在平时编程中会经常遇到这类问题:

过滤掉列表[3,9,-1,10,20,-2...]中的负数

筛选出字典{'Lilei': 79,'Jim': 88,'Lucy':92}值大于90的

筛选出集合{77,82,32,20}能被3整除的元素

这种场景的通用的做法是,遍历集合,如果条件满足了,就放入到集合列表中,代码如下:

代码语言:javascript
复制

# 1.通用的做法
data = [1,5,-3,-2,6,0,9]
res = []
for x in data:
    if x >= 0:
        res.append[x]
println(res)

在Python中,我们还可以使用一些高级的工具

使用Python中的函数式编程,使用列表解析,字典解析,集合解析,这种方式处理问题,更加简洁高效

1

使用filter函数

代码语言:javascript
复制

# 2.列表筛选
from random import randint
data = [randint(-10,10) for _ in range(10)]
res = filter(lambda x : x >= 0,data)
print(list(res))

2

使用列表解析

代码语言:javascript
复制

# 3.列表解析
res = [x for x in data if x >= 0]
print(res)

列表解析会比filter函数更加快一点

3

对字典使用列表解析

对于字典来说

字典过滤:

代码语言:javascript
复制

# 4.字典筛选
data = {x:randint(60,100) for x in range(1,20)}
# 过滤出分数高于90的同学
res = {k:v for k,v in data.items() if v >= 90}
print(res)

4

对集合使用解析

集合解析

代码语言:javascript
复制

# 5.集合筛选
data = set([randint(-10,10) for _ in range(10)])
res = {x for x in data if x >= 0}
print(res)

使用解析,是不是很方便?工作中多多使用哦!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 KK架构 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档