として宣言されたカウンターがmain_dict = Counter()
あり、値は として追加されmain_dict[word] += 1
ます。最後に、頻度が 15 未満のすべての要素を削除します。これを行う機能はありますかCounters
。
どんな助けでも感謝します。
として宣言されたカウンターがmain_dict = Counter()
あり、値は として追加されmain_dict[word] += 1
ます。最後に、頻度が 15 未満のすべての要素を削除します。これを行う機能はありますかCounters
。
どんな助けでも感謝します。
>>> from collections import Counter
>>> counter = Counter({'baz': 20, 'bar': 15, 'foo': 10})
>>> Counter({k: c for k, c in counter.items() if c >= 15})
Counter({'baz': 20, 'bar': 15})
Another method:
c = Counter({'baz': 20, 'bar': 15, 'foo': 10})
print Counter(el for el in c.elements() if c[el] >= 15)
# Counter({'baz': 20, 'bar': 15})
別の解決策を提案できますか
from collections import Counter
main_dict = Counter({'baz': 20, 'bar': 15, 'foo': 10})
trsh = 15
main_dict = Counter(dict(filter(lambda x: x[1] >= trsh, main_dict.items())))
print(main_dict)
>>> Counter({'baz': 20, 'bar': 15})
また、同じ問題がありますが、Counter からすべてのキーのリストを、あるしきい値を超える値で返す必要があります。これをする
keys_list = map(lambda x: x[0], filter(lambda x: x[1] >= trsh, main_dict.items()))
print(keys_list)
>>> ['baz', 'bar']
しきい値がゼロの場合のエレガントなソリューション:
main_dict += Counter()