Python一些特殊用法(map、reduce、filter、lambda、列表推導式等)


  • 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM