Python學習筆記 (第6課)

來源:互聯網
上載者:User

標籤:

這一節,我們將主要學慣用於list的三個內建函數: filter(), map(), 和 reduce().

1.filter(function, sequence)  逐個從sequence中取一個元素,傳入function,返回一個使function為真的序列。 如果參數sequence是str、unicode或者tuple,則返回相同的類型,否則都返回一個list

參數function:只有一個參數的函數,如果function為None,filter()將返回整個sequence。 

參數sequence:一個序列(字串、元組、列表等)

def testFilter(x):    return x%2  #x是否能被2整除print filter(testFilter,range(1,10)) #返回不能被2整除的序列print filter(None,range(1,10)) #返回整個range(1,10)序列

  運行結果:

>>> [1, 3, 5, 7, 9][1, 2, 3, 4, 5, 6, 7, 8, 9]

2.map(function, sequence) 逐個從sequence中取一個元素傳入function,function的每個傳回值組成列表作為map函數的傳回值

參數function:可以有一個參數,或者多個參數,如果有多個參數,對應的map函數的sequence參數也應該有多個,並且每個sequence的元素個數相同

參數sequence:一個序列(字串、元組、列表等)

def testMap(x,y):    return x+y print map(testMap,range(1,5),range(1,5))print map(testMap,range(1,5),range(1,3))

運行結果:

>>> [2, 4, 6, 8]Traceback (most recent call last):  File "C:/Users/PC/Desktop/pythonstudy/testfff.py", line 11, in <module>    print map(testMap,range(1,5),range(1,3))  File "C:/Users/PC/Desktop/pythonstudy/testfff.py", line 9, in testMap    return x+yTypeError: unsupported operand type(s) for +: ‘int‘ and ‘NoneType‘

3.reduce(function, sequence) 取sequnce的第一個元素和第二個元素作為初始值傳入function,計算後function的傳回值和sequnce的下一個元素作為參數傳入function進行計算,直到sequence的所有元素計算完成,將最後得到的值作為reduce的傳回值

function:兩個參數的函數

sequence:一個序列(字串、元組、列表等)

註:reduce函數還可以有第三個參數,用來初始化第一個用於計算的值

      如果sequence只有一個元素,那麼reduce將直接返回該值,如果sequence為空白,則會引起一個錯誤

def testReduce(x,y):    return x+yprint reduce(testReduce,range(10)) #列印range(10)的所有元素相加的值,計算過程:0+1+2+..+9print reduce(testReduce,range(10),10)#列印10和range(10) 所有元素相加的值,計算過程:10+0+1+2+...+9

運行結果:

>>> 4555

 

Python學習筆記 (第6課)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.