使用reduce似乎很难实现,因为如果您“ reduce”的两个元组都没有相同的字母,那么您将无法计算结果.如何减少(‘a’,1)和(‘b’,1)到可行的结果?

我能做的最好是l = functools.reduce(lambda x,y:(x [0],x [1] y [1])如果x [0] == y [0]否则x y,sorted(l))

它给了我(‘a’,3,’b’,1,’c’,1,’c’,1).因此,它对于第一个元素来说有点奏效,但需要多次通过才能进行其他操作(重新创建元组并进行另一次类似的减少,至少可以说这不是很有效!).

无论如何,这里有2种可行的方法

首先,使用collections.Counter计数相同类型的元素:

l = [('a', 1), ('a', 1), ('b', 1), ('c',1), ('a', 1), ('c', 1)]

import collections

c = collections.Counter()

for a,i in l:

c[a] += i

我们不能使用listcomp,因为每个元素都有权重(即使此处为1)

结果:一个字典:Counter({‘a’:3,’c’:2,2,’b’:1})

第二种选择:在排序列表上使用itertools.groupby,按名称/字母分组,并对带有相同字母的整数求和:

print ([(k,sum(e for _,e in v)) for k,v in itertools.groupby(sorted(l),key=lambda x : x[0])])

结果:

[('a', 3), ('b', 1), ('c', 2)]

python reduce函数怎么用的_我如何仅通过使用reduce函数在python中创建单...相关推荐

  1. offset函数的使用方法_有点麻烦:使用Excel OFFSET函数

    offset函数的使用方法 That's my dad in the picture, proudly holding the catch of the day. He tried to teach ...

  2. 儿童学python下哪个软件好用_【开源软件】超好用的Python学习软件!没有之一!...

    可以观看视频!文章结尾,有下载.安装方法! 曾几何时!Python开始掀起了一阵狂猛的学习浪潮?Python 那么Python为什么那么火? https://wenwen.sogou.com/z/q8 ...

  3. python xlsx 样式 谷歌开源 样式_连续加班一周最终把所有的Python库整理出来了,愿各位早日学会Py-站长资讯中心...

    MySQLdb,成熟的[MySQL]数据库模块, Baresql,SQL数据库包 ZODB,Python本地对象数据库.一个K-V对象图数据库. pickledb,简单和轻量级的K-V键值存储. Ti ...

  4. python可以实现vba功能吗_再见 VBA!神器工具统一 Excel 和 Python

    原标题:再见 VBA!神器工具统一 Excel 和 Python 关注 作者:东哥起飞 来源:Python数据科学 大家好,我是东哥. 经常给大家推荐好用的数据分析工具,也收到了铁子们的各种好评.这次 ...

  5. 怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中

    [IT168 技术]Python和R语言是在数据工程师间最流行的编程语言,但是,它并不能适用于应用程序构建的所有部分.这也就是你为什么有时需要找到一种方法,将Python或R编写的机器学习模型部署到基 ...

  6. python os.system(cls)没反应_这真的是全宇宙最简单的Python安装方式了

    大家安装Python一般都是怎么安装的呢?每次有同学来问老师Python的安装方法时,老师都会教大家如何到Python的官网下载最新的Python安装包.但近来也有同学在反应,由于Python的官网在 ...

  7. python的常用集成开发环境_【分享|10个超好用的Python集成开发环境推荐】- 环球网校...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注Py ...

  8. python人工智能什么人可以学_本科想学习人工智能方向,需要学习python的什么方向?...

    工作时长两年的算法工程师来答一波! 学习方向主要分为 4 个部分:数学基础.编程能力.算法基础.实战. 1.数学基础 在机器学习算法中,涉及到最为重要的数学基本知识有两个:线性代数和概率论. 这两也是 ...

  9. atexit函数的执行顺序_多玩YY语音的面试题:C++中如何在main()函数之前执行操作?...

    多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...

最新文章

  1. 报错解决: error: this use of defined may not be portable
  2. Console类浅谈
  3. VB与C#代码转换在线工具,亲测好用
  4. 数据结构--栈--共享顺序栈
  5. 什么叫事务?Java如何处理事务呢?
  6. Python面试题解答——第二部分企业面试题
  7. window.URL对象的使用方式
  8. 006 关于大数据的本地模式环境的搭建
  9. 【kvm虚拟化详解01】-虚拟化概述和主流方案介绍
  10. win7系统打不开chrome浏览器的一个真实有效解决办法
  11. hashcat工具的使用----再也不用担心自己的word等文件的密码忘记啦!
  12. C语言输出三位数的水仙花数
  13. 高级密码学复习1-HUST版
  14. 车牌识别计算机应用领域,车牌识别技术应用场景分析
  15. java读取Excel指定格式的数据
  16. 什么是 FreeMarker?
  17. [操作系统] 王道2023操作系统208页图3.26勘误
  18. 出自ios深入浅出专栏(内购)
  19. Sentence-BERT详解
  20. Android-Ble蓝牙开发Demo示例–扫描,连接,发送和接收数据

热门文章

  1. ae自动曝光_拾光剪影|手机摄影对焦曝光与Ae使用
  2. 【电脑帮助】解决Wind10系统桌面没有“我的电脑”图标的问题
  3. 一个简单的Blob存取例子
  4. python 随机数抽奖系统_python实现的简单抽奖系统实例
  5. jasperreport linux 中文不能显示的解决方法
  6. supermap试用许可过期如何重新申请
  7. 在vue项目中定义全局变量和全局函数
  8. 富文本转换字符串 php,php 如何将一个富文本字符串生成word文档?
  9. 二维数组传入函数_C++二维动态数组memset()函数初始化
  10. 内存二三事: Xcode 内存图、Instruments 可视化检测循环引用