Я довольно новичок в Python, так что извините, если это наивный вопрос ... Я искал вокруг, но не смог найти изящный ответ для этого ... В collections.Counter
, метод most_common(n)
возвращает только n наиболее часто используемых элементов в списке. Мне нужно именно это, но мне нужно включить равные подсчеты.Python collections.Counter: most_common ВКЛЮЧАЯ равные числа
from collections import Counter
test = Counter(["A","A","A","B","B","C","C","D","D","E","F","G","H"])
-->Counter({'A': 3, 'C': 2, 'B': 2, 'D': 2, 'E': 1, 'G': 1, 'F': 1, 'H': 1})
test.most_common(2)
-->[('A', 3), ('C', 2)
я должен был бы [('A', 3), ('B', 2), ('C', 2), ('D', 2)]
, так как они имеют одинаковое количество при п = 2 для этого случая ...
Надеюсь, вы умный решение.
P.S. Мои реальные данные о коде ДНК и могут быть довольно большими. Мне нужно, чтобы он был несколько эффективным.
Спасибо за вашу помощь ... Карел
у вас есть опечатка, пожалуйста, исправить, он должен быть 'get_item_upto_count (тест, 2) ' – Anzel
Почему бы не просто взять фрагмент из n элементов, а принять, когда следующий равен последнему элементу n фрагмента? –
@PadraicCunningham Возьмите кусочек чего? –