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

在列表,字典,集合中根据条件筛选数据,本实例介绍在Python中如何高效、简洁地列表,字典,集合中根据条件筛选数据。

实际案例

  • 过滤掉列表[3,9,-1,10,20,-2]中的负数

  • 筛出字典{‘LiLei’:79, 'Jim':88, 'Lucy':92}中值高于90的项

  • 筛出集合{77,89,32,20}中能被3整除的元素

解决方案

通用的解法是迭代加上条件判断

data = [1,5,-3,-2,6,0,9]
res = []
for x in data:
    if x >= 0:
        res.append(x)
print(res)

更高级的解决方案

列表

filter函数:filter(lambda x:x>=0, data)
示例程序如下:
在列表,字典,集合中根据条件筛选数据

列表解析: [x for x in data if x>=0]

对于Filter函数和列表解析谁更好的,我们通过一个实验演示说明。

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

从上述实验可以看出,列表解析性能会更好。

字典

字典解析:{k:v for k,v in data.iteritems() if v > 90}

集合

集合解析: {x for x in s if x % 3 == 0}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程