python匿名函式的重新理解

2021-08-28 14:34:22 字數 1081 閱讀 2142

#python內建的filter()函式用於過濾序列。

#和map()類似,filter()也接收乙個函式和乙個序列。和map()不同的是,

#filter()把傳入的函式依次作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素.

#注意到filter()函式返回的是乙個iterator,也就是乙個惰性序列,

#所以要強迫filter()完成計算結果,需要用list()函式獲得所有結果並返回list

l = [1,2,4,89,20,21,22,32]

print(list(filter(lambda x:x%2==0,l))) # 2,4,20,22,32

def _odd_iter():

n=1;``

while true:

n=n+2;

yield n;

def _not_divisible(n):

return lambda x: x % n > 0;

def primes():

yield 2;

it = _odd_iter(); #1.獲取奇數的序列惰性序列iterator 3,5,7,9,11,13

while true:

n = next(it); # 3 5 7 11

yield n;

#_not_divisible(n) => 首先n賦值給n,再使用 (_not_divisible(n))(3) => 3 賦值給x

it = filter(_not_divisible(n), it);

# it = filter(lambda x: x % n > 0, it);

# => lambda表示式中的n並不等價於外面的變數n,所以這一語句執行後得不到想要的結果原因所在。

#第一次篩選掉除以3等於0的資料 =》5,7,11 13

#第二次篩選掉除以5等於0的資料 =》7,11 13

for n in primes():

if n < 1000:

print(n);

else:

break;

重新理解啟用函式

神經網路裡引入啟用函式的目的 a.不使用啟用函式,每一層輸出都是上層輸入的線性函式,無論神經網路有多少層,輸出都是輸入的線性組合。b.使用啟用函式,能夠給神經元引入非線性因素,使得神經網路可以任意逼近任何非線性函式,這樣神經網路就可以利用到更多的非線性模型中。啟用函式需要具備以下幾點性質 1.連續並...

Python的匿名函式

python定義函式格式 def func name pass 定義名字 函式體部分情況下不需要重複呼叫 匿名函式 一次返回值即可 比如 max min sorted usr bin env python coding utf 8 author xp blog url 內建函式 map reduce...

python匿名函式

例如 a 100 b a 這樣100只會有乙份,a和b只是指向了同乙個位置,改變a的值b也會跟著改變 當我們用id 變數 檢視兩變數的位址是相同的 可變型別 列表,字典 不可變型別 除了可變型別剩下的都是不可變型別 不可變型別舉例 a world 可以輸出a 0 整個字串也可以修改,但是要修改a 0...