2016年5月15日 星期日

python 研究-一些特殊函數用法

Map函數:

原型:map(function, sequence),作用是將一個列表映射到另一個列表,

使用方法:

def f(x):

    return x**2

l = range(1,10)

map(f,l)

Out[3]: [1, 4, 9, 16, 25, 36, 49, 64, 81]

    Reduce函數

原型:reduce(function, sequence, startValue),作用是將一個列表歸納為一個輸出,
使用方法:

def f2(x,y):

    return x+y

reduce(f1,l)

Out[7]: 45

reduce(f2,l,10)

Out[8]: 55

    Filter函數

原型:filter(function, sequence),作用是按照所定義的函數過濾掉列表中的一些元素,
使用方法:

def f2(x):

    return x%2 != 0

filter(f2,l)

Out[5]: [1, 3, 5, 7, 9]

記住:這裡的function必須返回布爾值。

    Lambda函數

原型:lambda <參數>: 函數體,隱函數,定義一些簡單的操作,
使用方法:

f3 = lambda x: x**2

f3(2)

Out[10]: 4

還可以結合map、reduce、filter來使用,如:

map(f3,l)

Out[11]: [1, 4, 9, 16, 25, 36, 49, 64, 81]

    列表推導式

基本形式:[x for item in sequence <if (conditions)>], 這裡x表示對item的操作,

使用方法:

[i**2 for i in l]

Out[12]: [1, 4, 9, 16, 25, 36, 49, 64, 81]

    字典設置預設值

python字典中設置條目預設值在有些時候非常有用,例如初始化一個字典的時候。
使用方法:

x = {}

x.setdefault(1,0)

Out[15]: 0

x[2] = 10

x

Out[17]: {1: 0, 2: 10}

x.setdefault(2,1)

Out[18]: 10

沒有留言:

張貼留言