列表、字典、集合中筛选数据
列表中筛选数据
# for 循环选取数据 data = [1,5,-3,-2,6,0,9] res = [] for x in data: if x >= 0: res.append(x) print res
# filter 函数选取指定数据
# 运行环境为 ipython 2.7 操作系统ubuntu
from random import randint
data = [randint(-10,10) for _ in xrange(10)]
data
[2, -3, -2, 4, 4, -8, 0, 4, -9, 9]
filter(lambda x: x >=0 ,data)
[2, 4, 4, 0, 4, 9]
# 列表解析选取指定数据
[x for x in data if x >= 0]
[2, 4, 4, 0, 4, 9]
# 运行时间对比
In [9]: timeit filter(lambda x: x >=0 ,data)
1000000 loops, best of 3: 968 ns per loop
In [10]: timeit [x for x in data if x >= 0]
1000000 loops, best of 3: 518 ns per loop
结论:在列表中获取指定数据时,列表解析快
字典中筛选数据
# 首先生成一个字典 d = {x: randint(60,100) for x in xrange(1,21)}
d
{1: 66,
2: 85,
3: 76,
4: 67,
5: 94,
6: 69,
7: 99,
8: 78,
9: 70,
10: 79,
11: 67,
12: 92,
13: 80,
14: 62,
15: 90,
16: 64,
17: 74,
18: 71,
19: 69,
20: 77}
# 筛选出高于90的项,使用字典解析(类似于列表解析)
{k:v for k,v in d.iteritems() if v > 90}
{5: 94, 7: 99, 12: 92}
集合中筛选数据
# 使用集合解析
# 首先将列表转换成集合
data
[2, -3, -2, 4, 4, -8, 0, 4, -9, 9]
s = set(data)
s
{-9, -8, -3, -2, 0, 2, 4, 9}
# 接下来使用集合解析得出要的数
{x for x in s if x % 3 ==0}
{-9, -3, 0, 9}
网址:列表、字典、集合中筛选数据 https://mxgxt.com/news/view/224534
相关内容
启明星年中盛典「育时代人才,迎数字浪潮」数字专辑销售数据网址,2022年数字专辑销售数据
怎么搞明星数据分析图片
数据库优化基础
一帧搜索筛选里的短视频KOL粉丝画像筛选是什么意思?
大网红管理数据库是什么
上海城市数字化转型体验馆正式揭牌,主题含AI、元宇宙、数据交易
明星的数据分析怎么写
什么是追星的数据库
明星合作数据分析怎么写