Найти - Пользователи
Полная версия: задачка
Начало » Центр помощи » задачка
1
alextt
В тексте найти самое часто встречаемое слово. Регистр не учитывать.

a = “ab aa ab aa ll kk pp aa”
я разбиваю список на части при помощи split
потом насколько я понимаю.удобнее всего будет записывать все в словарь.
тоясть {'ab':2,'aa':3} и тд но не могу сообразить как это написать на питоне.подскажите.лучше всего наиболее простым способом.без использования доп методов
tapakah68
Можно например так

 a = "ab aa ab aa ll kk pp aa"
d = {i: a.split().count(i) for i in a.split()}
print d

Выведет {'aa': 3, ‘kk’: 1, ‘ll’: 1, ‘ab’: 2, ‘pp’: 1}
FishHook
tapakah68
Можно например так
Можно, но это крайне не оптимально, задача решается за один проход. Ваше решение умрет на более-менее больших текстах. Кроме того вы не выполнили требование “Регистр не учитывать”.



FishHook
  
import random
from operator import itemgetter
 
# подготовка тестовых данных
words_cache = [" abc", " def", " ghij"]
s = ""
for i in xrange(10000):
    s += random.choice(words_cache)
 
# Само решение
res = {}
for word in s.split():
    if word.lower() in res:
        res[word] += 1
    else:
        res[word] = 1
 
print(max(res.iteritems(), key=itemgetter(1))[0])
py.user.next
  
>>> import collections
>>> 
>>> s = 'ab aa ab Aa ll kk pp aa'
>>> 
>>> c = collections.Counter(s.lower().split())
>>> c.most_common()[0][0]
'aa'
>>>
alextt
а можно это как то сделать без использования count ? и вызова доп функций?просто задача понять как все работает и написать в ручную.а не пользоваться готовыми методами и функциями.
п.с. в любом случае спасибо всем кто уделил внимание
FishHook
я же вам все дал

   
s = "ab aa ab aa ll kk pp aa"
res = {}
for word in s.split():
    if word.lower() in res:
        res[word] += 1
    else:
        res[word] = 1
 
print(max(res.iteritems(), key=lambda x: x[1])[0])
alextt
FishHook
я же вам все дал
спасибо.не увидел
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB