python3 map,filter和列表推導式

來源:互聯網
上載者:User

標籤:python3   操作   返回   運算式   lambda   wan   tools   nbsp   lis   

    num_list = [11,2,-33,10,7,3,5,43]

  1、filter  函數

    擷取num_list大於5的元素,並返回列表

    用lambda運算式實現:

      # 在python2 中 filter返回的是一個列表,可以用for遍曆

      # 在python3 中 filter返回的是一個filter對象,可以用for遍曆,也可以用list轉換為列表

      list2 = list(filter(lambda x: x>5, num_list))

      print(list2) #輸出:[11, 10, 7, 43]

    用列表推導式實現:

      list2 = [x for x in num_list if x >5]

      print(list2) #輸出:[11, 10, 7, 43]

  2、map 函數

    給num_list的所有元素都乘以2,並返回列表

    用lambda運算式實現:

      # 在python2 中 map返回的是一個列表,可以用for遍曆

      # 在python3 中 map返回的是一個map對象,可以用for遍曆,也可以用list轉換為列表

      list3 = list(map(lambda x: x*2, num_list))

      print(list3) #輸出:[22, 4, -66, 20, 14, 6, 10, 86]

    用列表推導式實現:

      list3 =[x*2 for x in num_list]

      print(list3) #輸出:[22, 4, -66, 20, 14, 6, 10, 86]

  3、Reduce函數

    引入:from functools import reduce

    計算num_list所有元素之和

    list4 = reduce(lambda x,y: x+y, num_list)

    print(list4) #輸出 :48

  4、列表推導式

    擷取num_list列表中大於0的元素並執行平方操作

    squared_list = [x**2 for x in num_list if x >0]

    print(squared_list)  #輸出 :[121, 4, 100, 49, 9, 25, 1849]

  5、list join操作

    binfo = [‘lao‘,‘wang‘,‘python‘]

    content = " ".join(binfo)

    print(content)  #輸出 :lao wang python

    content = ";".join(binfo)

    print(content) #輸出 :lao;wang;python

    

python3 map,filter和列表推導式

聯繫我們

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