码迷,mamicode.com
首页 > 其他好文 > 详细

MAP函数和Reduce函数

时间:2020-09-11 14:22:04      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:end   instance   dig   字母   str1   大写   它的   函数   字符串   

"""
map(fn,lsd)
fn:是一个函数 可以是自己定义的 可以是python内置的
lsd:是一个序列
功能:把lsd中的每个元素一次作用在fn上
惰性序列 :不转换 就不会转换
"""
# L = ["0","1","2","3","4","5","6","7","8","9","10"]
# def func(key):
# dict1 = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,}
# return dict1[key]
#
# res = list(map(func,L)) #:L传入到func的key中 最终按照字典匹配key/values方式匹配到对应的值
# print(res)
#:总结:
#:map函数会把(func,L)中的L参数传递到func参数中 这样就可以实现f遍历这些操作,但是要注意一点map是惰性序列,不转换它的话就不会转换,所以需要在使用一种类型转换一下map函数

"""


"""
# a = ["1","2","3"]
# b = []
# count = 0
# for i in range(0,3):
# # print(i)
# # count +=1
# # print(a[i])
# # print(a[count])
# # print(a[i]+a[count])
# print(a[i]+a[i]+a[i])

# from functools import reduce
#
# List1=[1,2,3,4,5]
# def func(a,b):
# return a*10 + b
#
# res = reduce(func,List1)
# print(res)

# from functools import reduce
# L = ["2","4","6","7"]
# res = list(map(int,L))
# print(res)
# def func(a,b):
# return a*10 + b
# result = reduce(func,res)
# print(result)

#:例子:将下列列表中的元素的第一个字母大写,其余小写
# L = ["JaCk","LoseR","jEEry","PyTHON"]
# def func(var): #:首先写一个方法
# return var.capitalize() #:传入一个变量"var",使用capitalize函数进行转换
#
# res = list(map(func,L)) #:在调用map函数,传入func方法和L列表
# print(res) #:最终拿到值


from functools import reduce

L = ["1","ad3","c2","h2o",["co2","k2mno4",1,"na2"],34]
L1 = []
for var in L:
#:判断var如果是一个列表
if isinstance(var,list):
#:遍历二级列表
for val in var:
#:判断二级列表中的元素如果是一个字符串
if isinstance(val,str):
#:遍历二级列表中的字符串
for str1 in val:
if str1.isdigit():
L1.append(str1)
elif isinstance(var,str): #:判断var如果是一个字符串
for i in var: #:遍历var
if i.isdigit(): #:判断i是否由数字组成
L1.append(i) #:追加的l1列表中国
res = list(map(int,L1))
def func(a,b):
return a*10 + b
result = reduce(func,res)
print(result)

MAP函数和Reduce函数

标签:end   instance   dig   字母   str1   大写   它的   函数   字符串   

原文地址:https://www.cnblogs.com/yandh/p/13586547.html

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