列表,字典,集合中根据条件筛选数据,如下所示
列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数
字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对
集合:{2,3,8,6,7,5} 找出所有被3整除的数
列表
>>> from random importrandint>>> data = [randint(-10,10) for x in xrange(10)]>>>data[-1, 8, -9, 9, 10, -2, 6, -8, -2, 10]
对于列表来说,想要对其中的数值进行筛选,最先想到的应该是利用遍历:
>>> res =[]>>> for x indata:
>>>if x >=0:
>>> res.apend(x)
>>> res
[8,9,10,6,10]
较为常用的方法还有使用过滤函数filter
>>> filter(lambda x: x >= 0, data)
[8,9,10,6,10]
也可以使用列表生成式
>>> [x for x in data if x >=0]
[8, 9, 10, 6, 10]
对比这三种方法,开发中通常使用第三种,列表生成式,因为它的运行效率要比过滤函数filter高,而对于第一种则不会去使用。
字典
假如现有20名同学,他们