美文网首页程序员
如何使用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