Python map,filter,reduce函数
# -*- coding:utf-8 -*- #定义一个自己的map函数
list_list = [1,2,4,8,16]
def my_map(func,iterable):
my_list = []
for ab in iterable:
x = func(ab)
my_list.append(x)
return my_list
def add1(x):
return x +1
############################
print(my_map(add1,list_list))
#自己定义的map函数+匿名函数(比较简洁了)
print((my_map(lambda x:x+1,list_list)))
下面是Python map函数
#Ptyhon的map函数+匿名函数+list(),list可以接收一个可迭代对象
print(list(map(lambda x:x**2,list_list)))
filter函数:
#定义一个自己的filter函数
members = ["sb_me","sb_you","good_girl","good_boy","sb_me"]
def my_filter(func,list):
stay_members = []
for i in list:
if not func(i):
stay_members.append(i)
return stay_members
def sb_show(x):
return x.startswith("sb") print(my_filter(sb_show,members))
#自己定义的filter函数+匿名函数
print(my_filter(lambda x:x.startswith("sb"),members))
下面是Python的filter函数
#Python的filter函数+匿名函数+list()
print(list(filter(lambda x:not x.startswith("sb"),members)))
reduce函数
#定义一个自己的reduce函数
#初级版,只有相乘,如果我想变成相加,要改函数,扩展性差
nums = [2,4,6,8,10]
def my_reduce(nums):
s_sum = nums.pop(0)
for i in nums:
s_sum = s_sum * i
return s_sum
print(my_reduce(nums))
#升级版,引入一个形参函数,使得计算灵活,还可以增加一个首参(Python的reduce可以带首参,所以我们这个也可以,为啥带咱也不知道,咱也不也敢问)
def my_reduce2(func,nums,init = None):
if init == None:
s_sum = nums.pop(0)
else:
s_sum = init
for i in nums:
s_sum = func(s_sum,i)
return s_sum
print(my_reduce2(lambda x,y:x+y,nums,2))
Python的reduce函数
#Python的reduce函数
from functools import reduce
print(reduce(lambda x,y:x+y,nums,5))
总结:
# map() 处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样
# filter()遍历序列中的每一个元素,判断每个元素得到布尔值,如果是True就留下来
# reduce()处理一个序列,把序列进行合并操作
Python map,filter,reduce函数的更多相关文章
- python map() filter() reduce()函数的用法以及实例
map() 看一下我的终端咋说: map()的函数用法: map(function, iterable, ...) 看一下具体例子: 注意的是一定要强制转化一下才能输出 也可以写匿名函数: (mark ...
- python Map()和reduce()函数
Map()和reduce()函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函 ...
- python map filter reduce的优化使用
这篇讲下python中map.filter.reduce三个内置函数的使用方式,以及优化方法. map()函数 map()函数会根据提供的函数对指定序列做映射. 语法: map(function,it ...
- python中filter(),reduce()函数
filter()函数 是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 和一个list,这个函数的作用是对每个元素进行判断,返回 True或 False,filter() ...
- Python map filter reduce enumerate zip 的用法
map map(func, list) 把list中的数字,一个一个运用到func中,常和lambda一起用. nums = [1, 2, 3, 4, 5] [*map(lambda x: x**2, ...
- python常用函数进阶(2)之map,filter,reduce,zip
Basic Python : Map, Filter, Reduce, Zip 1-Map() 1.1 Syntax # fun : a function applying to the iterab ...
- python 内置函数 map filter reduce lambda
map(函数名,可遍历迭代的对象) # 列组元素全加 10 # map(需要做什么的函数,遍历迭代对象)函数 map()遍历序列得到一个列表,列表的序号和个数和原来一样 l = [2,3,4,5,6, ...
- Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内 ...
- 数组的高阶方法map filter reduce的使用
数组中常用的高阶方法: foreach map filter reduce some every 在这些方法中都是对数组中每一个元素进行遍历操作,只有foreach是没有 ...
随机推荐
- L1-064 估值一亿的AI核心代码
以上图片来自新浪微博. 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来: 消除原文中多余空格:把相邻单词间的多个空格换成 1 个 ...
- pytest自动化3:fixture之conftest.py实现setup
出处:https://www.cnblogs.com/yoyoketang/p/9390073.html 前言: 前面一篇讲到用例加setup和teardown可以实现在测试用例之前或之后加入一些操作 ...
- 自学python之路(day3)
基础数据类型---字符串str 1.字符串的索引和切片 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推. a = 'ABCDEFGH' print(a[0]) print(a[1] ...
- OpenGL之纹理贴图(Texture)
学习自: https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 先上一波效果图: 实际上就是:画了一个矩形,然后 ...
- Linux 下使用umount强行卸载设备
卸载NFS,结果出现无法卸载的情况 [root@localhost /]# umount /udisk/ umount: /udisk: device is busy umount: /udisk: ...
- [转载] java多线程总结(一)
转载自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html 作者:Windstep 多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. ...
- WPF popup自动关闭
var tileMore = new Tile { Height = , Width = , Background = , , )), Title = "更多...", }; ti ...
- python pycharm pyqt 安装
1.python3 windows:www.python.org/download/windows/ 我的是WIN7 64位所以选的是 Download Windows x86-64 exec ...
- HTML+CSS水平垂直居中
啦啦啦,好了,今天来分享自己的第一个知识点,难得自己还能想起来过来博客园,写写博客的. 好了,言归正传,今天分享关于html和css的一个简单的知识点,对于大部分从事前端开发的人员来说可能都是很简单的 ...
- java数字转IP 一行
System.out.println(InetAddress.getByName(String.valueOf(12345)).getHostAddress());