博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在列表,字典,集合中根据条件筛选数据
阅读量:6607 次
发布时间:2019-06-24

本文共 1457 字,大约阅读时间需要 4 分钟。

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

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 randintdata = [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 randintdata = [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])

  

 

转载于:https://www.cnblogs.com/xieshengsen/p/6954294.html

你可能感兴趣的文章
C# DllImport的用法
查看>>
Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock
查看>>
no identities are available for signing
查看>>
javascript 和 jquery插件开发
查看>>
Linux Shell文件差集
查看>>
eclipse中如何去除警告:Class is a raw type. References to generic type Class<T> should be parameterized...
查看>>
Gradle脚本基础全攻略
查看>>
Django模版中的过滤器详细解析 Django filter大全
查看>>
Linux中使用pwconv实现passwd中密码到shadow
查看>>
MongoDB C++ gridfs worked example
查看>>
Visual Studio 2017各版本安装包离线下载
查看>>
C#线程安全的那些事
查看>>
【论文笔记】Social Role-Aware Emotion Contagion in Image Social Networks
查看>>
rpm安装PostgreSQL
查看>>
k sum(lintcode)
查看>>
28. extjs中Ext.BLANK_IMAGE_URL的作用
查看>>
Hibernate注解配置N:N关联
查看>>
Android 控件属性
查看>>
【244】◀▶IEW-Unit09
查看>>
处理有外键约束的数据
查看>>