python筛选大量数据_python(数据筛选)

本文介绍了Python3中筛选大量数据的三种方法:使用filter、列表解析和原始迭代。通过实例比较了它们的效率,其中列表解析的效率最高。此外,还涉及到了字典和集合的筛选操作,演示了如何根据条件筛选字典的键值对和集合的元素。
摘要由CSDN通过智能技术生成

在Python3中:

(1)xrange的功能合并到range里面,xrange已经不存在 -> range和xrange用法

(2)filter已经不能返回一个list,而是只能返回一个迭代对象,需要套在一个list()里面,且,需要注意的是,filter过滤后,对原list并不产生影响

(3)字典的iteritems() 更改为 items()

列表:

from random import randint

import timeit

# 在列表中根据条件筛选数据

# e.g.01 -> filter,效率比原始迭代要好

# 需要解释的是:range(1,10) -> 生成的是:0-9

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

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

# e.g.02 -> 列表解析,效率最高

data3 = [x for x in data if x >= 0]

# e.g.03 -> 最原始迭代方法,效率最差

res = []

for x in data:

if x >= 0:

res.append(x)

print(res)

# 时间对比

t1 = timeit.timeit("list(filter(lambda x: x >= 0, %s))" % data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值