map filter reduce
admin
2023-07-20 18:01:48
0
# map
# map  : what why how
# http://devdocs.io/python~3.6/library/functions#map  官方文档
# 返回一个迭代器,该迭代器将函数应用到可迭代的每一项,从而产生结果
# 不用for循环,就能将序列中的数据一一映射到给定的处理函数,快速对一个序列的数据进行各种操作
# 是代码更简单
map?
"""Init signature: map(self, /, *args, **kwargs)
Docstring:     
map(func, *iterables) --> map object
函数用--------------------> 返回的map对象
"""
num = [1,3,5,7,9]
# for 循环
new_num = []
for i in num:
    y = i + 1
    new_num.append(y)
print(new_num)
[2, 4, 6, 8, 10]
# map
def add(x):
    return(x+1)

map(add, num)
list(map(add, num))
[2, 4, 6, 8, 10]
# 字符串处理
str_list = ['lilei', 'coop', 'hanmei']

def change(s:str):
    return s.capitalize()

list(map(change, str_list))
['Lilei', 'Coop', 'Hanmei']
# filter
# 从可迭代的元素中构造一个迭代器,函数返回true,iterable可以是一个序列,一个支持迭代的容器
# 或者一个迭代器,如果函数为None,则假定表示函数为false,即false的所有元素都被删除
# 不用for循环,就能将序列中数据一一映射到给定的处理函数,函数中添加了真假判断,True则返回
# 相应的数据,最终得到筛选后的序列,使得代码更简单
my_list = [11,22,33,44,55,343,66,77]
new_list = []
for i in my_list:
    if 20 < i < 60:
        new_list.append(i)
print(new_list)
[22, 33, 44, 55]
# filter   首先是构造一个过滤田间的函数,然后才能使用filter
def choose(x):
    if 20 < x < 50:
        return True

def choose1(y):
    return 20< y < 50

filter(choose, my_list)
list(filter(choose, my_list))
[22, 33, 44]
# 字符串处理
str_list = ['lilei','coop','coop2','hanmemei','china']

import re

def coop(s:str):
    return re.search('coop', s)
filter(coop, str_list)
list(filter(coop, str_list))
['coop', 'coop2']
# reduce  处理数字列表的连乘, 累加
# 将两个
from functools import reduce
num = [1,3,5,7,9]

sum = 0
for i in num:
    sum += i
print(sum)
25
sum = 1
for i in num:
    sum *= i
print(sum)
945
# 定义函数
def sum(x, y):
    return x + y
def cheng(x, y):
    return x * y
reduce(sum, num)
25
reduce(cheng, num)
945

相关内容

热门资讯

战争冲突没有赢家——美以伊战事... 新华社北京6月19日电(记者阚静文 马倩 刘赞)北京时间18日,美国和伊朗宣布远程签署谅解备忘录。数...
乌克兰发动最大规模袭击,“莫斯... 【文/观察者网 王一】当地时间6月18日,莫斯科上空被浓烟笼罩。综合美国《纽约时报》、美联社等外媒报...
特朗普的新专机,首次亮相 财联社6月20日讯(编辑 史正丞)综合CCTV国际时讯等媒体报道,特朗普心心念念许多年的新总统专机,...
日本宣布,7月1日起赴日签证费... 6月19日,日本外务大臣茂木敏充宣布,7月1日起,外国人单次入境签证和多次入境签证的费用将分别上涨至...
英国两列客运火车相撞,已致1死... 据英国警方证实,当地时间6月19日下午发生在英格兰地区贝德福德附近的客运列车相撞事故,已造成1人死亡...
技术攻关筑牢根基 解锁航运绿色... 来源:星沙时报 来源:人民网 走进上海海事大学综合机舱实验室,主机运转的低沉声浪扑面而来,集控室显示...
科技改变生活:这些黑科技正在重... 你可曾发觉, 十年之前科幻电影当中呈现出现的场景, 现如今乃是正逐个地走入现实之中? 清晨之际将你唤...
又一国家级重大产业工程,落地!... 来源:东北新闻网 国家级重大产业工程,中国首条、全球首批第8.6代AMOLED生产线17日在成都量产...
阿里旗下天猫精灵第一家数据产业... 走进威海临港区天猫精灵人工智能数据产业基地,数十名员工与高校实习生正紧盯屏幕,核对智能机器人执行"移...
中国4月持有美债降至18年来新... 【文/观察者网 王一】当地时间6月18日,美国财政部公布的最新数据显示,中国4月继续减持美国国债,持...