[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)
複製代碼
若是個人文章對你有幫助,記得點贊鴨