gpt4 book ai didi

python - 计数器 most_common 元素作为生成器

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:56 26 4
gpt4 key购买 nike

我正在使用 collections.Counter目的。我想一个一个地获取最常见的元素,但是 most_common 方法为我提供了整个元素列表。
有没有办法将此列表作为生成器?

最佳答案

您可以简单地将 collection.Counter.most_common() 包装在生成器函数中,如下所示:

from collections import Counter

def most_common(iterable, n=None):
return iter(Counter(iterable).most_common() if n is None else
Counter(iterable).most_common(n))

for item in most_common('Mississippi', 3):
print item

注意:虽然看起来将 None 传递给 collection.Counter.most_common() 与不传递任何东西给它是一样的(一个常见的 Python 习惯用法),但当前文档确实没有这么说,所以我决定谨慎行事,使用 .. if .. else .. 条件表达式来只传递它 n 当它不是 None 时,但是它的文档字符串确实明确地说“如果 nNone,则列出所有元素计数”。

如果您不担心这种微小的差异,则可以将上面的内容缩短为:

def most_common(iterable, n=None):
return iter(Counter(iterable).most_common(n))

太短了,您可能只想围绕任何 Counter.most_common() 调用编写 iter() 代码,您必须避免调用额外包装器的开销-功能。

无论如何,输出应该是这样的:

('i', 4)
('s', 4)
('p', 2)

关于python - 计数器 most_common 元素作为生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com