Я новичок в Python, и мне нужно, чтобы вычислить среднее количество символов в слове в спискесреднее количество символов в слове в списке
, используя эти определения и вспомогательные функции clean_up
.
token - это str, которую вы получаете от вызова метода string, разбитого на строку файла.
Слово является непустым токеном из файла, который не полностью состоит из знаков препинания. найти «слова» в файле с помощью str.split
, чтобы найти маркеры, а затем удалить знаки препинания из слов с помощью вспомогательной функции clean_up
.
Приговор представляет собой последовательность символов, заканчивающихся (но не включает) символы !
, ?
, .
или конец файла, исключает пропуски на обоих концах, и не пусто.
Это мое домашнее задание вопрос из моего компьютерного класса науки в моем колледже
функция очистки является:
def clean_up(s):
punctuation = """!"',;:.-?)([]<>*#\n\"""
result = s.lower().strip(punctuation)
return result
мой код:
def average_word_length(text):
""" (list of str) -> float
Precondition: text is non-empty. Each str in text ends with \n and at
least one str in text contains more than just \n.
Return the average length of all words in text. Surrounding punctuation
is not counted as part of the words.
>>> text = ['James Fennimore Cooper\n', 'Peter, Paul and Mary\n']
>>> average_word_length(text)
5.142857142857143
"""
for ch in text:
word = ch.split()
clean = clean_up(ch)
average = len(clean)/len(word)
return average
я получаю 5.0, но я действительно смущен, некоторая помощь будет принята с благодарностью :) PS Я использую python 3
Вы хотите 'float (len (word))' – Hoopdady
@Hoopdady OP использует Python3. –
Это дает только среднее значение последнего элемента на входе – M4rtini