1,如何在列表,字典,集合中根据条件筛选值

[外链图片转存失败(img-CRpfYNAz-1564054291960)(assets/1564049968398.png)]

列表数据筛选

  1. 使用 for 循环 速度:* 推荐:*

       data = [1, 2, -8, -2, 6, -9, 42, 36]
       res = []
       for i in data:
           if i > 0:
               res.append(i)
       print(res)
    
  2. 使用 filter 过滤函数 速度:*** 推荐:***

    from random import randint
    
    data = [randint(-10, 10) for i in range(10)]
    res = list(filter(lambda x: x > 0, data))
    
  3. 使用 列表推导式 + if 判断 速度:***** 推荐:*****

    from random import randint
    
    data = [randint(-10, 10) for i in range(10)]
    res = [i for i in data if i > 0]
    
    timeit([i for i in data if i > 0])		# 查看运行速度
    

字典数据筛选

  1. 使用 字典推导式 + if 判断 速度:***** 推荐 *****

    data = {x: randint(60, 100) for x in range(21)}
    
    res = {k: v for k, v in data.items() if v > 90}	# 筛选出v大于90的值
    

字典数据筛选

  1. 使用 集合推导式 + if 判断 速度:***** 推荐:*****

    data = set([randint(-1, 10) for _ in range(10)])
    
    res = {i for i in data if i % 3 == 0}
    
    res = {i for i in data if i % 3 == 0}
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值