zoukankan      html  css  js  c++  java
  • 如何在列表,字典,集合中根据条件筛选数据

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

    1. 过滤类别中的负数
    # eg_v1 使用迭代判断

    data = [1,4,5,-1,-2,-5,9,10,11]
    res1 = []
    for x in data:
    if x >= 0:
    res1.append(x)
    print (res1)
    # [1, 4, 5, 9, 10, 11]
    res2 = []
    for y in data:
    if y < 0:
    res2.append(y)
    print (res2)
    # [-1, -2, -5]
    

      

    # eg_v2 使用filter函数
    filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list

    from random import randint
    data = [randint(-10,10) for _ in xrange(10)]
    print (data)
    # [-8, 8, 0, -9, -9, 8, -10, 9, -4, 5]
    F1 = filter(lambda x : x >= 0,data)
    print (F1)
    # [8, 0, 8, 9, 5]
    

      

    # eg_v3 使用列表解析

    from random import randint
    data = [randint(-10,10) for _ in xrange(10)]
    print (data)
    # [-3, -4, -9, 1, -5, 6, -7, -6, 10, 7]
    F2 = [x for x in data if data >= 0]
    print (F2)
    # [1, 6, 10, 7]
    

      

    可以使用timeit 函数测试小段代码片段的执行时间

    T1 = timeit filter(lambda x : x >= 0,data)
    T2 = timeit [x for x in data if data >= 0]
    

      


    2. 筛选字典中的值
    # eg_v4 创建一个字典,并筛选值大于80的数

    d = {x: randint(60,100) for x in range(1,20)} 
    print (d)
    # {1: 93, 2: 98, 3: 70, 4: 80, 5: 60, 6: 73, 7: 100, 8: 71, 9: 86, 10: 87, 11: 62, 12: 97, 13: 87, 14: 96, 15: 77, 16: 70, 17: 79, 18: 87, 19: 99}
    dict1 = {k: v for k, v in d.iteritems() if v > 80} # k 为字典中的键,v 为字典中的值
    print (dict1)
    # {1: 93, 2: 98, 7: 100, 9: 86, 10: 87, 12: 97, 13: 87, 14: 96, 18: 87, 19: 99}
    

      


    3. 筛选集合中的元素
    # eg_v5 筛选出集合能被3整除的元素

    set1 = {12,-1,3,4,7,8,23,18,23,11}
    s1 = {x for x in set1 if x % 3 == 0}
    print s1
    # set([18, 3, 12])
    

      

  • 相关阅读:
    Linux操作系统的进程管理
    CentOS 7网络配置工具
    Python并发编程-线程
    Python并发编程-queue
    Python并发编程-并发解决方案概述
    图Graph
    计算机网络基础之IP地址详解
    计算机网络基础之TCP/IP 协议栈
    计算机网络基础之网络设备
    计算机网络基础之OSI参考模型
  • 原文地址:https://www.cnblogs.com/xieshengsen/p/6954294.html
Copyright © 2011-2022 走看看