025_Python3 reduce 函数高级用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了025_Python3 reduce 函数高级用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1474字,纯文字阅读大概需要3分钟。
内容图文
![025_Python3 reduce 函数高级用法](/upload/InfoBanner/zyjiaocheng/596/364b7f2473b74d3ca46e682561a350a2.jpg)
# -*- coding: UTF-8 -*- ''' 用法:reduce (func, seq[, init()]) 参数1:function句柄,用于完成迭代对象中两个元素之间的操作 参数2:迭代对象 功能: reduce函数用途:对迭代对象中的元素从左至右两两送入参数1传入的function中进行运算 ''' from functools import reduce # 1. 求和 s = sum([i for i in range(101)]) print(s) # 5050 s1 = reduce(lambda x, y: x + y, range(101)) print(s1) # 5050 # 2. 元组对象求和 scientists = ({'name': 'Alan Turing', 'age': 105, 'gender': 'male'}, {'name': 'Dennis Ritchie', 'age': 76, 'gender': 'male'}, {'name': 'Ada Lovelace', 'age': 202, 'gender': 'female'}, {'name': 'Frances E. Allen', 'age': 84, 'gender': 'female'}) def reducer(accumulator, value): s = accumulator + value['age'] # 注意 第二次循环执行时,reducer 会变成sum,即数字, # 所以下面必须给一个初始值 0 return s total_age = reduce(reducer, scientists, 0) print(total_age) # 467 # 酱紫也可以 print(sum([x['age'] for x in scientists])) # 467 print(reduce(lambda x, y: x + y, range(1, 101), 2)) # 5052 # 3. 列表合并 lst = [ [1, 2, 3], [4, 5], [6, 7, 8], [9, 10, 11, 12] ] print(reduce(lambda x, y: x + y, lst)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] # 4. [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],统计这个集合所有键的重复个数,返回字典 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(reduce(statistics, lst, {})) # {1: 2, 2: 2, 3: 3, 5: 4, 6: 2, 7: 2} # 也就是说 reduce的第一个参数是一个 func,该 func 的第一个参数是 reduce 的第三个参数, # 第二个参数是 reduce 的第二个参数(里面的每一项)
内容总结
以上是互联网集市为您收集整理的025_Python3 reduce 函数高级用法全部内容,希望文章能够帮你解决025_Python3 reduce 函数高级用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。