Python高级编程-如何在列表,字典,集合中根据条件筛选数据?

列表
1.用 filter过滤负数
from random import randint
data=[randint(-20,20) for _ in range(10) ]
data
filter(lambda x:x>=0,data)
2.用列表解析
[ x for x in data if x>=0]
哪个更好?
  用timeit测试时间
  timeit filter(lambda x:x>=0,data)   #909ns
  timeit [ x for x in data if x>=0]   #455ns  用这个
字典
1.
d={x: randint (60,100) for x in range (1,21)}
{k:v for k,v in d.iteriters() if v>90}
集合
2.
>>> data
[7, -18, 19, 1, -7, -10, 17, 14, 18, -13]
>>> s=set(data)
>>> s
{1, 7, -18, 14, 17, 18, 19, -13, -10, -7}
>>> { x for x in s if x%3==0}
{18, -18}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值