有没有更简单的方法按长度过滤掉计数器键?python

2024-06-28 20:14:07 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有更简单的方法按长度过滤掉计数器键?在

我尝试了下面的方法,它给出了过滤后计数器的正确输出,但是它将计数器作为一个列表进行迭代,然后再次将列表放入计数器中。有没有一种更简单、计算成本更低的方法来做同样的事情?在

from collections import Counter

x = Counter(['a','a', 'ab', 'c', 'hij', 'k'])

threes = Counter([i for i,j in x.items() if len(i) == 3])
twos = Counter([i for i,j in x.items() if len(i) == 2])

Tags: 方法infromimport列表forlenif
2条回答

您可以看到Counter文档here。简单的回答是,没有一个内置方法来生成仅包含具有特定长度的项的Counter。在

从原始列表中单独创建新的Counter对象可能更有效:

^{1}$

使用^{}将密钥长度映射到密钥列表:

^{1}$

顺便说一句,如果您想要的是按长度获取键列表,则不需要创建Counter对象。在

相关问题 更多 >