파이썬에는 collections.Counter
에 대한 내장 클래스가 있습니다.
In [8]: from collections import Counter
In [9]: with open('Makefile', 'r') as f:
...: raw = Counter(f.read())
...:
In [10]: raw
Out[10]: Counter({' ': 61, 'e': 46, 'p': 38, 'a': 29, '\n': 27, 'c': 27, 'n': 27, 'l': 26, 'd': 25, '-': 22, 's': 22, 'y': 22, 't': 20, 'i': 18, 'o': 18, 'r': 17, '.': 16, 'u': 13, '\t': 12, 'm': 12, 'b': 11, 'x': 10, 'h': 9, '/': 8, ':': 8, '_': 7, "'": 6, ';': 5, '\\': 5, 'f': 5, '*': 3, 'v': 3, '{': 3, '}': 3, 'k': 2, 'H': 1, 'O': 1, 'N': 1, 'P': 1, 'Y': 1, 'g': 1})
이
은 BTW의
pandas
라이브러리의
Makefile
에서입니다. 내림차순 빈도별로 정렬하려면 어떻게 : 당신이 시도하고 문제를 내 솔루션을 적용 할 수 있도록 내가 의도적으로 정확한 데이터를 사용하지 않는
In [22]: raw.most_common()
Out[22]:
[(' ', 61),
('e', 46),
('p', 38),
('a', 29),
('\n', 27),
('c', 27),
('n', 27),
('l', 26),
('d', 25),
('-', 22),
('s', 22),
('y', 22),
('t', 20),
('i', 18),
('o', 18),
('r', 17),
('.', 16),
('u', 13),
('\t', 12),
('m', 12),
('b', 11),
('x', 10),
('h', 9),
('/', 8),
(':', 8),
('_', 7),
("'", 6),
(';', 5),
('\\', 5),
('f', 5),
('*', 3),
('v', 3),
('{', 3),
('}', 3),
('k', 2),
('H', 1),
('O', 1),
('N', 1),
('P', 1),
('Y', 1),
('g', 1)]
.
정확히 문제가 무엇입니까 당신은 일종의 그 후 인쇄가, 목록에있는 수를 절약 할 수있다? –
문제 없음 나는 단지 내가 내놓은 것을 어떻게 받아 들일 수 있는지를보고 있는데, 가장 낮은 곳에서 가장 낮은 곳에 놓는다. –