码迷,mamicode.com
首页 > 编程语言 > 详细

python3 map,filter和列表推导式

时间:2018-08-09 17:33:01      阅读:127      评论:0      收藏:0      [点我收藏+]

标签: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和列表推导式

标签:python3   操作   返回   表达式   lambda   wan   tools   nbsp   lis   

原文地址:https://www.cnblogs.com/shaosks/p/9449540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!