Python代码然后实现列表分组计数

技术Python代码然后实现列表分组计数本篇文章给大家分享的是有关Python代码然后实现列表分组计数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. c

本文是关于Python代码,然后实现列表分组计数。边肖觉得很实用,就分享给大家学习一下。希望你看完这篇文章能有所收获。让我们和边肖一起看看。

1. count_by

defcount_by(arr,fn=lambdax:x):

密钥={}

forlinmap(fn,arr):

key[El]=1 felnotinkyelsekey[El]1

returnkey

#示例

来自mathimportfloor

count_by([6.1,4.2,6.3],floor)#{6:2,4:1}

Count _ by (['一','二','三'],len) # {3:2,533601} Count _ by根据给定的函数对列表中的元素进行分组,并返回每个组中的元素数。使用此映射()将给定列表的值与给定函数进行映射。迭代映射,并增加每次出现的元素数量。

该函数使用not in判断当前字典中是否包含指定的关键字,如果不包含,则将该关键字添加到字典中,并将相应的值设置为1;如果是的话,给这个值加1。

00-1010字典派生的形式为{key _ expr:Value _ expr用于集合if条件中的值}。group_by函数中字典派生的value_expr是一个列表,它是使用列表派生生成的。也就是

{ key _ expr :[xforxincollection 2 if条件2] forvalueincollection1 if条件1}同时我们可以看到,根据group_by代码中的字典推导,可能会计算出具有相同键的项,而根据Pyrhon中字典类型的规则,如果键相同,则只保留最新的键值对。实际上,当键相同时,值也相同。[El for El in lst if fn(El)=key]在派生的for语句中只有一个变量key。

d={ '一' :1,'二' :2,'三' :3,'二' :2}

d

{ '一' :1,'二' :2,'三' :3}

d={ '一' :1,'二' :2,'三' :3,'二' :22}

d

{ '一' :1,'二' :22,'三' :3}

这里,分组后可以直接用同样的方法获取列表长度。但是,这种方法已经遍历了列表两次,这将使程序效率低下。

defcount_by(lst,fn):

返回{ key : len([elf orelinstiffn(El)==key])Forkeyinmap(fn,lst)}

2. 使用字典推导式

类集合。Defaultdict ([default_factory [,])收藏。Defaultdict包含一个default _ factory属性,可以用来快速构造规范。

当int用作default_factory时,defaultdict可以用于计数。所以你可以直接用它来简化代码。与字典推导法相比,只需要循环一次列表。

from collectionimport defaultdict

defcount_by(lst,fn):

d=defaultdict(int)

前级入口:

d[fn(el)]=1

Returnd当使用列表作为default_factory时,很容易将序列(由键-值对组成)转换为字典(由键-列表对组成)。

defgroup_by(lst,fn):

d=defaultdict(列表)

前级入口:

d[fn(el)]。追加(el)

返回d

#示例

来自mathimportfloor

group_by([6.1,4.2,6.3],floor)#{4:[4.2],6:[6.1,6.3]}

Group _ by (['一','二','三'],len) # {3: ['一','二'],5: ['三']}以上都是Python代码,然后实现列表分组计数。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/84022.html

(0)

相关推荐

  • 使用了索引查询还是慢的原因是什么

    技术使用了索引查询还是慢的原因是什么本篇内容介绍了“使用了索引查询还是慢的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年10月22日
  • react.js有什么特点

    技术react.js有什么特点本篇内容介绍了“react.js有什么特点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    攻略 2021年11月24日
  • 椭圆机面板按键图说明,三鼎全站仪键盘按钮说明

    技术椭圆机面板按键图说明,三鼎全站仪键盘按钮说明面板上按键功能——进入坐标测量模式键椭圆机面板按键图说明。
    ◢——进入距离测量模式键。
    ANG——进入角度测量模式键。
    MENU——进入主菜单测量模式键。
    ESC——用于中

    生活 2021年10月22日
  • 在RecyclerView中如何实现button的跳转功能

    技术在RecyclerView中如何实现button的跳转功能这篇文章主要为大家展示了“在RecyclerView中如何实现button的跳转功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一

    攻略 2021年10月25日
  • mysql服务启动后该怎么操作(怎么用命令开启mysql以及运行结果)

    技术MySQL启动和关闭的方法是什么这篇文章主要介绍“MySQL启动和关闭的方法是什么”,在日常操作中,相信很多人在MySQL启动和关闭的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家

    攻略 2021年12月23日
  • 字母顺序,26个英文字母书写顺序

    技术字母顺序,26个英文字母书写顺序1字母顺序、A B C D 的书写顺序准备好英语练习本子,格式一共有3行(上中下),用黑色的签字笔写出A B C D 。
    大写:A B C D 占上中两格,小写:a

    生活 2021年10月23日