Python練習 高階函式

2021-08-20 11:42:32 字數 2307 閱讀 8132

當乙個函式的引數,傳的是另乙個函式的時候,這樣的函式就是高階函式

變數可以指向函式,如果乙個變數指向了乙個函式,那麼,可通過該變數來呼叫這個函式

ap()函式接收兩個引數,乙個是函式,乙個是iterable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回。

def

f(x):

return x * x * x

l = range(1, 10)

print map(f, l)

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

l = ['admin', 'jack', 'banb']

defupper_first

(s):

return s[0].upper() + s[1:].lower()

print map(upper_first, l)

def

prod

(l):

defsum1

(x, y):

return x * y

return reduce(sum1, l)

l = range(1, 5)

print prod(l)

from functools import reduce

char_to_float =

defstr2float

(s):

point = 0

defchar2num

(s1):

return char_to_float[s1]

defto_float

(f, n):

nonlocal point

if n == -1:

point = 1

return f

if point == 0:

return f * 10 + n

else:

point = point * 10

return f + n / point

return reduce(to_float, map(char2num, s), 0.0)

print(str2float('1344323.456'))

和map()類似,filter()也接收乙個函式和乙個序列。和map()不同的是,filter()把傳入的函式依次作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素。

def

is_palindrome

(n):

return str(n) == str(n)[::-1]

print(list(filter(is_palindrome, range(1, 1000))))

def

********s

(): n = [1]

while

true:

yield n

n = [n[i - 1] + n[i]for i in range(len(n))]

n = 0

results =

for t in ********s():

print(t)

n = n + 1

if n == 10:

break

l = [(『bob』, 75), (『adam』, 92), (『bart』, 66), (『lisa』, 88)]

請用sorted()對上述列表分別按名字排序:

按名字排序:

l = [('bob', 75), ('adam', 92), ('bart', 66), ('lisa', 88)]

defby_name

(n):

return n[0].lower()

print('sorted by name: ')

print(sorted(l, key=by_name))

那分數排序:

l = [('bob', 75), ('adam', 92), ('bart', 66), ('lisa', 88)]

defby_score

(n):

return n[1]

print('sorted by score: ')

print(sorted(l, key=by_score))

Python高階練習 函式 字典

找到年齡最大的人,並輸出,找出程式中有什麼問題 1.字串分割成列表 使用str.split方法 2.求列表最大值 3.找到 字典 值對應鍵 def max info n dict0 for i in range 3 input info input 請輸入學員資訊 姓名 年齡 list1 input...

練習 高階函式

def add after fn def test args,kwargs fn args,kwargs print after return testdef add 100 fn def test args,kwargs fn args,kwargs return fn 100 return te...

Python練習 高階函式 day11

1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 1.1.作業1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 2,寫函式,傳入乙個引數n,返回n的階乘 例如 cal ...