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

來源:互聯網
上載者:User

標籤:

  • 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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.