Python 3.6.5-如何在列表,字典,集合中根据条件筛选数据

列表

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

from random import randint
data = [randint(-10, 10) for _ in range(10)]
data
[-2, 1, 10, -6, -3, 9, -1, 8, 0, -1]

print(filter(lambda x: x>= 0 , data))
<filter object at 0x00000152FBB4D208>

[x for x in data if x>= 0] # 更高效。在列表中筛选出非负数
[1, 10, 9, 8, 0]

字典

d ={x: randint(60,100) for x in range(1, 21)}
d
{1: 92, 2: 61, 3: 95, 4: 90, 5: 76, 6: 79, 7: 73, 8: 93, 9: 94, 10: 70, 11: 74, 12: 83, 13: 87, 14: 80, 15: 99, 16: 62, 17: 100, 18: 84, 19: 61, 20: 70}

{k: v for k, v in d.items() if v > 90} # 在字典中筛选出大于90的值。items():将字典中的所有项,以列表方式返回
{1: 92, 3: 95, 8: 93, 9: 94, 15: 99, 17: 100}

集合

data
[-2, 1, 10, -6, -3, 9, -1, 8, 0, -1]

s = set(data) # 将data转变为集合
s
{0, 1, 8, 9, 10, -1, -6, -3, -2}

{ x for x in s if x % 3 == 0} # 在集合中筛选出能被3整除的数
{0, 9, -6, -3}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值