python之6-2高階函數

1. map函數

  • map(函數A,字符串或者列表)
  • map函數的意思是將函數A依次做用到字符串的每一個字符或者列表的每一個元素.
  • 例如:
map(lambda x: x*x,[1,2])
[1, 4]

這裏lambda是匿名函數,匿名函數的做用就是不用定義函數名.
格式:lambda 參數: exp
關於map函數,其實用的並非太多,由於能夠用列表解析來寫,例如上面的等價於[x*x for x in range(1,3)]python

2. reduce函數

  • reduce(函數A,字符串或者列表)
  • reduce函數的意思是將函數A依次做用到字符串的2個字符或者列表的2個元素.
  • 例如:
>>> reduce(lambda x,y: x+y,[1,2,3,4])
10

假設匿名函數名爲a,那麼上面就等價於 a(a(a(1,2),3),4)函數

3. sorted函數

  • 做用:比較字符串或者數值大小
  • 格式:sorted(列表,函數)
  • 例子:
def cmp_ignore_case(s1, s2):
    u1 = s1.upper()
    u2 = s2.upper()
    if u1 < u2:
        return -1
    if u1 > u2:
        return 1
return 0
>>> sorted(['about', 'bob', 'Zoo', 'Credit'], cmp_ignore_case)
['about', 'bob', 'Credit', 'Zoo']

4. 模擬map()函數

  • map()函數須要接收兩個參數,一個函數參數,一個列表
def my_map( f, l ):
    print [ f(x) for x in l ]
def f1( x ):
    return x * x
my_map( f1, [ 1, 2, 3, 4, 5 ] )
相關文章
相關標籤/搜索