Как найти три самые частоповторяющиеся элементы из строки (списка)

276 просмотра
0
0 Комментариев

Имеется строка из файла, и нужно найти 3 самые частоповторяющиеся элементы в этой строке. Вначале я думал сделать из строки список и применить метод sort() или sorted() и в значение key= поставить функцию лямбду, использующую count(), но не получилось. Теперь я решил сделать по другому и использовать цикл for для строки, но тоже что то не получается. Если знаете, то скажите, как список с помощью лямбды отсортировать, чтобы найти 3 самых частоповторяющихся элемента и еще как код который внизу написан исправить.

def fdx_1 ():
    with open('tecst.txt') as o:
        nom = []
        pe = o.read()
 
        for i in range(len(pe)):
            try:
                if pe.count(pe[i]) > pe.count(pe[i + 1]):
                    nom.append(pe[i])
 
            except IndexError:
                break
 
    return nom


Добавить комментарий

2 Answers

Python Опубликовано 16.12.2018
0

Составляешь хистограмму- карту (dict) где ключом будут элементы списка а значением их количество

Добавить комментарий
0

Чтобы найти три самых частовстречающихся символа (Unicode codepoint) в файле, можно collections.Counter использовать:

#!/usr/bin/env python3
from collections import Counter
from operator import itemgetter
 
with open('input.txt') as file:
    counter = Counter(char for line in file for char in line)
 
print(*map(itemgetter(0), counter.most_common(3))) # winners

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up