过滤
尝试使用以下代码计数列表中元素的出现
from collections import Counter
A = ['a','a','a','b','c','b','c','b','a']
A = Counter(A)
min_threshold = 3
在上面的A
上致电计数器后,形成了类似的计数器对象:
>>> A
Counter({'a': 4, 'b': 3, 'c': 2})
从这里,如何仅使用3
的最小阈值?
'a'
和'b'
构建计数器,然后将dict理解作为第二个滤波步骤。
{x: count for x, count in A.items() if count >= min_threshold}
# {'a': 4, 'b': 3}
被Satish BV所覆盖的,您可以通过词典理解在柜台上迭代。您可以使用项目(或iTeritems以提高效率,如果您使用Python 2(来获得一系列(键,值(元组对。然后将其变成计数器。
my_dict = {k: v for k, v in A.iteritems() if v >= min_threshold}
filteredA = Counter(my_dict)
另外,您可以在原始计数器上迭代并删除不必要的值。
for k, v in A.items():
if v < min_threshold:
A.pop(k)
这看起来更好:
{ x: count for x, count in A.items() if count >= min_threshold }
您可以从 3
以下的字典中删除键:
for key, cnts in list(A.items()): # list is important here
if cnts < min_threshold:
del A[key]
给您:
>>> A
Counter({'a': 4, 'b': 3})