Я постараюсь вам помочь.
Во-первых, качество вопроса может быть лучше. Я думаю, вам следует попытаться дать некоторое обоснование вашему фрагменту, так что любой, кто может ответить, может помочь вам, улучшив не только ваше решение, но и задумавшись над ним (сделав вас лучшим кодером).
Во-вторых, эта проблема уже решена с большим количеством хороших объяснений в Интернете. Проверьте, например. item frequency count in python, который имеет фантастическое количество умных решений.
В-третьих, это, возможно, та часть, которую вы ожидали, и ваш вопрос показывает, что вам нужно улучшить понимание синтаксиса, функциональности и общего алгоритмического мышления Python. Позвольте мне уточнить.
Python Синтаксис и функциональность
Многие другие ответы подчеркнуть, что, как вы используете fh
не очень хорошо. Как правило, вы бы многострочный строку написанную, как это в Python:
fh = '''this is the first row
second row
third row'''
Другие известные примеры того, где вы получили бы от того лучшего понимания синтаксиса и функциональности Python является, например, список, встроенные типы и т. д. Пройдите через Python tutorial. Прикопайтесь к нему, это очень полезно!
алгоритмическое мышление
Обычно, когда я вижу код, такой как ваша, я пытаюсь выяснить, если проблема заключается в отсутствии понимания/знания инструмента (в данном случае Python) или решения сам. В вашем случае, я думаю, что это немного.
Когда дело доходит до решения, то, что многие опытные кодеры делают (или, по крайней мере, в начале своей карьеры), должны решить, как они намереваются решить проблему. Типичный опытный кодер проверит их панель инструментов, чтобы увидеть, что будет работать, а затем примените его.
Я бы решил проблему, используя набор, используя набор данных для решения этой проблемы. Наборы довольно удобны в большинстве случаев и хорошо описаны в области дискретной математики. Ознакомьтесь с книгой Discrete Mathematics and Its Applications от Rosen, которая охватывает это и целую кучу других вещей, которые вы найдете полезными в будущем. (Вы можете, вероятно, найти много интернет-ресурсов, описывающих наборы, но эта книга ссылка на области дискретной математики. Я рекомендую получить его.)
Поскольку наборы настолько удобны, Python, естественно, имеет встроенную поддержку Это. Опять же, учебник Python приходит на помощь, посмотрите раздел на sets.
Возможное решение
Итак, что может стать возможным решением выглядеть?Я бы сделал следующее:
- Убедитесь, что все в многострочной строке.
- Разделить строку в список.
- Создайте набор, основанный на содержимом списка.
- Преобразуйте обратно в список, чтобы его можно было отсортировать.
- Сортировка.
- Печать.
Все это не требует каких-либо for
или if
заявления, и использует много функциональных возможностей встроенного языка.
Надеюсь, что этот совет поможет вам!
1) Попробуйте распечатать 'fh'; это не то, что вы думаете. 2) Почему вы выполняете 'words = line.split()', а затем ничего не делаете с 'словами'? Является ли 'слово в строке:' должно быть 'слово за слова:'? 3) Что вы ожидаете от lst = lst.append (word) '? 4) Чтобы сделать это эффективно, вы должны использовать ['set'] (https://docs.python.org/2/library/stdtypes.html#set-types-set-frozenset). –