Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字典中的频率计数——使用理解的Python_Python - Fatal编程技术网

字典中的频率计数——使用理解的Python

字典中的频率计数——使用理解的Python,python,Python,我有一本字典,想用Python来计算频率 例如: 输入 输出 {'Succeeded':3,'Failed':2} 不要使用理解,只需对字典中的值应用理解 >>> from collections import Counter >>> d = {0: 'Succeeded', 1: 'Succeeded', 2: 'Failed', 3: 'Failed', 4: 'Succeeded'} >>> Counter(d.values()) C

我有一本字典,想用Python来计算频率

例如:

输入

输出

{'Succeeded':3,'Failed':2}

不要使用理解,只需对字典中的值应用理解

>>> from collections import Counter
>>> d = {0: 'Succeeded', 1: 'Succeeded', 2: 'Failed', 3: 'Failed', 4: 'Succeeded'}
>>> Counter(d.values())
Counter({'Failed': 2, 'Succeeded': 3})
一般提示

具有连续整数键的词典浪费内存。你可以用一张单子

my_list = ['Succeeded', 'Succeeded', 'Failed', 'Failed', 'Succeeded']
你可以用整数0,1,2。。。就像你原来的字典一样。该列表占用更少的内存,并且可以在不使用散列键的情况下找到值

在这种情况下,Countermy_list将构建您想要的词典

下面是警告错误代码

你可以但不应该写一个理解如下

>>> vals = list(d.values())
>>> {v:vals.count(v) for v in vals}
{'Failed': 2, 'Succeeded': 3}

但我强烈建议不要使用这种理解,因为与计数器上的解决方案相反,它具有二次时间复杂性。对于VAL中的每个值,将迭代VAL以计算值。

不使用理解,只需对字典中的值应用a即可

>>> from collections import Counter
>>> d = {0: 'Succeeded', 1: 'Succeeded', 2: 'Failed', 3: 'Failed', 4: 'Succeeded'}
>>> Counter(d.values())
Counter({'Failed': 2, 'Succeeded': 3})
一般提示

具有连续整数键的词典浪费内存。你可以用一张单子

my_list = ['Succeeded', 'Succeeded', 'Failed', 'Failed', 'Succeeded']
你可以用整数0,1,2。。。就像你原来的字典一样。该列表占用更少的内存,并且可以在不使用散列键的情况下找到值

在这种情况下,Countermy_list将构建您想要的词典

下面是警告错误代码

你可以但不应该写一个理解如下

>>> vals = list(d.values())
>>> {v:vals.count(v) for v in vals}
{'Failed': 2, 'Succeeded': 3}

但我强烈建议不要使用这种理解,因为与计数器上的解决方案相反,它具有二次时间复杂性。对于VAL中的每个值,将迭代VAL以计算值。

谢谢@timgeb Yes,有了一个额外的包,我就可以这样做了。但如果不使用任何外部软件包,这是可能的吗?“我无法构建逻辑框架。@ArijitGhosh没问题。集合。计数器是标准库的一部分,所以没有理由不使用它。谢谢@timgeb Yes,我可以用一个额外的包来完成它。但如果不使用任何外部软件包,这是可能的吗?“我无法构建逻辑框架。@ArijitGhosh没问题。集合。计数器是标准库的一部分,所以没有理由不使用它。到目前为止,您尝试了什么?你为什么要使用理解法?到目前为止你试过什么?你为什么要使用理解法?