列表、字典、集合中筛选数据

发布时间:2024-12-16 16:30

列表中筛选数据

# 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、元宇宙、数据交易
明星的数据分析怎么写
什么是追星的数据库
明星合作数据分析怎么写

随便看看