把數字字串轉換為數字的問題。
1、把乙個n位數按小數點前後分開成兩個列表l1,l2(要用乙個演算法迭代可以將小數點後的數先縮小10**n倍)。
2、前後分別用秦九韶演算法還原數值。
3、lambda函式對兩個列表中的數實現同種演算法的迭代。
from functools import reduce
def str2float(s):
digits =
s1,s2 = s[:s.index('.')], s[s.index('.')+1:]
l1,l2 = list(map(lambda x:digits[x],s1)),list(map(lambda x:digits[x]/10**len(s2),s2))#list可省略
return sum(map(lambda z:reduce(lambda x,y:10*x+y,z),[l1,l2]))
#sum可加list就能發現l1,l2分別實現迭代,sum只是對結果進行了加和
print(str2float('123.456789'))
python 隱藏函式lambda的各種用法
lambda x x 21print lambda x x 2 1 5 sorted 排序的意思 排序物件,key 使用該函式的返回值進行排序,匿名函式lambda 引數名 排序物件 age reverse true從大到小排預設由小到大 temp filter none,1,3.14 none,0...
python中的lambda函式
lambda函式也叫匿名函式,即,函式沒有具體的名稱。先來看乙個最簡單例子 deff x returnx 2printf 4 python中使用lambda的話,寫成這樣 g lambdax x 2printg 4 lambda表示式在很多程式語言都有對應的實現。比如c varg x x 2cons...
Django中的lambda函式
django裡有乙個特別適合lambda函式的場合 即 認證裝飾器 它的作用是確認使用者有足夠的許可權訪問某些頁面。一種辦法是講乙個代表已登入使用者的user物件傳遞給乙個函式,如果允許使用者訪問則返回true,否則返回false。這樣的函式可以用一般的def foo 來定義,但是lambda更加簡...