有没有更简单的方法按长度过滤掉计数器键?在
我尝试了下面的方法,它给出了过滤后计数器的正确输出,但是它将计数器作为一个列表进行迭代,然后再次将列表放入计数器中。有没有一种更简单、计算成本更低的方法来做同样的事情?在
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])
您可以看到
Counter
文档here。简单的回答是,没有一个内置方法来生成仅包含具有特定长度的项的Counter
。在从原始列表中单独创建新的
^{1}$Counter
对象可能更有效:使用^{} 将密钥长度映射到密钥列表:
^{1}$顺便说一句,如果您想要的是按长度获取键列表,则不需要创建
Counter
对象。在相关问题 更多 >
编程相关推荐