美文网首页
python(数据筛选)

python(数据筛选)

作者: OldSix1987 | 来源:发表于2016-09-02 00:31 被阅读602次

    在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, number=10)
    t2 = timeit.timeit("[x for x in %s if x >= 0]" % data, number=10)
    print(t1, t2, sep="*"*20)
    

    小技巧::for _ in range(10): 意思就是单纯的循环10次,变量参数什么的不用考虑


    字典和集合

    # --------------------------------字典解析-----------------------------------------------#
    
    d = {x: randint(60, 100) for x in range(1, 21)}
    
    d1 = {k: v for k, v in d.items() if v > 90}
    
    print(d, d1, sep="=============\n")
    
    
    # --------------------------------集合解析-----------------------------------------------#
    print(data)
    s = set(data)
    s1 = {x for x in s if x % 3 == 0}
    print(s1)
    

    相关文章

      网友评论

          本文标题:python(数据筛选)

          本文链接:https://www.haomeiwen.com/subject/fgshettx.html