美文网首页程序员
如何使用python对列表、字典、集合进行过滤筛选?

如何使用python对列表、字典、集合进行过滤筛选?

作者: 糖醋沼跃鱼 | 来源:发表于2020-12-14 17:46 被阅读0次

    实际案例

    • 过滤掉列表[3, 9, -1, 10, -2, 20, ...]中的负数
    • 筛选出字典{'LiLei':79, 'Jim':88, 'Lucy':92, ...}中值高于90的项
    • 筛选出集合{77, 89, 32, 20, ...}中能被3整除的元素

    解决方案

    列表

    filter函数

    filter(lambda x:x>0, data)
    

    列表解析

    [x for x in data if x>=0]
    

    字典

    字典解析

    {k:v for k, v in d.iteritems() if v>90}
    

    集合

    集合解析

    {x for x in s if x%3 == 0}
    

    以上解决方法对应上述问题

    补充代码

    生成一个范围随机数列表

    from random import randint
    list1 = [randint(-10,10) for x in range(10)]
    

    使用timeit对第一个问题的两种解决方法做一个运行时间对比,发现列表解析的方法是要优于filter函数的。并且这两种方式,都要优于通过普通迭代的方法。

    生成一个范围随机数字典

    dict1 = {k:radint(60, 100) for k in range(1, 21)}
    

    大家加油

    相关文章

      网友评论

        本文标题:如何使用python对列表、字典、集合进行过滤筛选?

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