Python与数据分析

【Python学习笔记】在列表和字典中根据条件筛选数据

2019-07-17  本文已影响0人  清梦载星河

一、在列表中筛选数据

待筛选列表data:

from random import randint
data = [randint(-10,10) for _ in range(10)]

任务:从待筛选列表中筛选出大于0的数

方法一:循环迭代

def shaixuan(alist):
    tmp = []
    for i in alist:
        if i > 0:
            tmp.append(i)
    return tmp

编写一个筛选函数,将待筛选列表作为参数,返回一个已筛选好的列表。

方法二:filter函数

print(list(filter(lambda x: x>=0, data)))

此处使用了filter和lambda表达式,一句代码解决。
注意:python3中filter()返回一个可迭代对象,需要转换为列表才能看到结果。

方法三:使用列表解析

print(x for x in data if x >0)

代码同样只有一句。
使用ipython的%timeit魔法命令,平均时间列表解析 < filter函数 < 循环迭代

二、在字典中筛选数据

使用字典解析

待筛选字典d:

from random import randint
d = {x : randint(60,100) for x in range(1,21)}

从中筛出值大于90的键值对。

{ k:v for k,v in d.items() if v > 90}
上一篇下一篇

猜你喜欢

热点阅读