问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

深入理解Python reduce函数

发布网友 发布时间:2022-10-12 04:32

我来回答

1个回答

热心网友 时间:2023-10-18 04:17

例如上面的例子,实现一个整形集合的累加。假设lst = [1,2,3,4,5],实现累加的方式有很多:

第一种:用sum函数。

sum(lst)
第二种:循环方式。

def customer_sum(lst):
result = 0
for x in lst:
result+=x
return result

def customer_sum(lst):
result = 0
while lst:
temp = lst.pop(0)
result+=temp
return result

if name=="main":
lst = [1,2,3,4,5]
print customer_sum(lst)
第三种:递推求和

def add(lst,result):
if lst:
temp = lst.pop(0)
temp+=result
return add(lst,temp)
else:
return result

if name=="main":
lst = [1,2,3,4,5]
print add(lst,0)
第四种:rece方式

lst = [1,2,3,4,5]
print rece(lambda x,y:x+y,lst)

lst = [1,2,3,4,5]
print rece(lambda x,y:x+y,lst,0)

def add(x,y):
return x+y

print rece(add, lst)

def add(x,y):
return x+y

print rece(add, lst,0)

有一个序列集合,例如[1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],统计这个集合所有键的重复个数,例如1出现了两次,2出现了两次等。大致的思路就是用字典存储,元素就是字典的key,出现的次数就是字典的value。方法依然很多

第一种:for循环判断

def statistics(lst):
dic = {}
for k in lst:
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print(statistics(lst))
第二种:比较取巧的,先把列表用set方式去重,然后用列表的count方法

def statistics2(lst):
m = set(lst)
dic = {}
for x in m:
dic[x] = lst.count(x)

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print statistics2(lst)
第三种:用rece方式

def statistics(dic,k):
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print rece(statistics,lst,{})

或者
d = {}
d.extend(lst)
print rece(statistics,d)

通过上面的例子发现,凡是要对一个集合进行操作的,并且要有一个统计结果的,能够用循环或者递归方式解决的问题,一般情况下都可以用rece方式实现。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
虹口区东余杭路541弄算几号地块?12年下半年号称要拆,附近都在拆类,明... 我想知道新建路东余杭路这二年有没有拆迁规划? 手机通话变声器哪种好 变声器哪个好用 我准备7月底开始复习考研,还来得及吗 大四下学期考研还来得及吗 考研还来得及吗 ...在脊椎骨右边靠脊椎骨附近疼,是什么原因,大概有半个多月了,弯腰时... 电脑开着总是无缘无故蓝屏提示 电脑开着总是无缘无故蓝屏 电脑无缘无故蓝屏怎么回事探究电脑突然蓝屏的原因 Statistics统计工具功能详解与应用[转] 高深莫测的意思 高深莫测的解释 深圳高陶马桶售后电话? 深圳COTTO马桶售后维修电话? 深圳乐伊马桶售后电话? 2011年小学生寒期社会实践活动登记表答案(文字)我表妹要尽快在2011.02.13日前填写表格。。。跪地求.. 6年级小学生寒假实践活动指南 吉林教育出版社 云南省标准教辅小学生《寒假活动、五年级》答案 小学生暑假实践活动指南五年级(国标本)的所有数学作业的答案!!跪求!! 国标本小学生五年级暑假实践活动指南答案 照样子,各写两个成语。(注意有标号的字) 过闻喜则,几个字能排成什么成语 钢琴上的黑键能发出声音吗 电钢琴最中间的四个黑键四个白健没有声音,怎么回事啊 我的钢琴的倍高音区降E这个黑键没声音,有首歌曲里出现最多的就是这个音,怎么办?需要及时修吗? AJF5什么意思 世界哪些大学建筑学 提供全额奖学金? 美国哪些大学有全额奖学金(国际本科生)? 哪些大学提供美国本科全额奖学金 国外哪些大学有全额奖学金,学校也不算差,GPA3.5左右就可以申请到奖学金的(加拿大,澳洲,美国等)----研究生 html网页设计中百度图片幻灯片那种怎么做? 酱排骨怎么做 怎么做酱排骨 电影呼啸山庄英文影评 谁知道毛姆关于呼啸山庄的评论?要英文的!! 求《飘》或者《呼啸山庄》的人物评价 英文 四川省启明小动物保护中心的工作任务 四川启明小动物保护中心地址 国际和国内保护动物组织相比有哪些优势? 哪里的李庄两个孩孑喝农药死了 期末试题:1.学习 计算机导论 这门课的体会以及对计算机科学与技术这个学科的认识,求解答。 北邮计算机科学与技术专业编译原理往年试题,求~ 北京邮电大学简介 关于北京邮电大学简介 北京邮电大学有几个校区,哪个校区最好及各校区介绍 51岁的女性适合买哪些保险 首先,必须深刻的认识自己 让你深刻认识自己的十本书 离婚后对自己的深刻认识 对人性有深刻的认识 是怎样炼成的 ai52learn是什么网站 俯看流泉仰听风——张洪写意人物画摭谈