[1, 3, 8, -2, 5 ...]
中的负数{'python':90, 'java':20. 'c++':70...}
中值高于90的项(77, 98, 32, 40...)
中能够被3整除的数通用的方法就是进行迭代(先对容器进行for循环,在进行条件判断)可是不符合咱们优雅的身份,咱们不采用java
首先咱们先导入一个神奇的random函数,他会帮助咱们随机生成一个列表python
from random import randint
复制代码
随机生成10个范围-10 - 10的数c++
data = [randint(-10, 10) for i in range(10)]
复制代码
接下来使用咱们的主角filter函数上场,简单解释一下这个参数,它的第一个参数接收一个函数(咱们一般用lambda建立一个用来过滤的匿名函数,lambda须要一个参数由data依次传递给它,以后这个函数返回一个布尔值,为真的,该值就会被返回),第二个参数接收列表。好像有点懵逼。看代码栗子bash
filter(lambda x: x > 0, data)
复制代码
这样就大功告成了dom
接下来,咱们使用列表解析去完成这个问题函数
[x for x in data if x > 0]
复制代码
一样能够得出同样的答案ui
一般首选列表解析,由于列表解析速度快,可是都因为迭代spa
依旧随机生成字典code
d = {x: randint(60, 100) for x in range(1, 21)}
复制代码
如今咱们只要分数大于90的,咱们来弄一个字典解析cdn
{k: v for k, v in d.items() if v > 90}
复制代码
ok,大功告成,来继续解决集合问题
随机集合走一波
s = set([randint(-10, 10) for i in range(10)])
复制代码
咱们查找下集合里能够被3整数的数,也就是集合解析
(x for x in s if x % 3 == 0)
复制代码
若是个人文章对你有帮助,记得点赞鸭