2015-04-09 2 views
0

Итак, я пытаюсь написать базовую функцию, которая принимает текстовый ввод и целое число 'n', и возвращает слова на входе, которые происходят n раз или больше.Возвращая ключ словаря из его значения

Вот что у меня есть:

Моя проблема заключается в строке «возвращает ключи» - ясно, что не будет работать.

Что я могу использовать для возврата соответствующих слов?

Благодаря

+0

Нам нужны примеры ввода и вывода. – Tux

ответ

2

return [k for k, v in counttext.items() if v >= n]

+0

Я бы использовал 'iteritems' вместо' items'. – ronakg

+0

Я не настолько опытен и не совсем уверен в различии - это то, что 'items' строит список, но' iteritems' возвращает генератор и избегает этой первоначальной стоимости? В любом случае вы просматриваете весь словарь, не так ли? – grayshirt

+0

Прохладный, спасибо. Я действительно новичок в python, не могли бы вы объяснить: k для k, v в часть для меня? – 129893289

0
counttext = collections.Counter(ltext) 
result = [] 
for key in counttext: 
    if counttext[key] >= n: 
     result.append(key) 
return result 
0

В Python 2.7, вы можете восстановить свой словарь с dict comprehension и после того, как получить ключ от значения.

Например с помощью простого dict:

>>> d = {'a': 1, 'b': 2, 'c': 3} 
>>> revert_d = {v: k for k, v in d.items()} 
>>> revert_d 
{1: 'a', 2: 'b', 3: 'c'} 
>>> revert_d[1] 
'a' 
Смежные вопросы