Форум сайта python.su
0
Всем добрый вечер.
Подскажите, пожалуйста, как можно узнать кол-во слов в строке?
что писать после
…
for line in f: words += line.split() f.close() number_of_words = '' for i in words:
Отредактировано Kato (Дек. 17, 2012 19:21:11)
Офлайн
0
скажите, плз, будет ли это работать правильно?
for i in line: for j in words: if len(words) < 10: n += 1
Офлайн
253
KatoА что вам питон говорит? Или вы ему не верите?
будет ли это работать правильно
len(line.split())
Офлайн
1
ну я так понимаю человек читает из файла строки? readline не подойдет для построчного подсчета?
Офлайн
0
нет,он открывает заданный файл(к примеру, содержащий текст параграфа из какого-то учебника), и потом выдает, сколько в нем строк, содержащих меньше 10 слов. по-мне, так он какое-то астрономическое число выдал- там текст на 1 параграф, выдает, что таких строк около 6к
Офлайн
43
print('{}'.format( (lambda f=open('/home/sergeek/ff/python3.2-3.2.2/README'): (len (filter(lambda l: len(l) < 10, map(lambda l: l.split(), iter(f.readline,''))))))()))
Офлайн
0
sergeek, реквестирую разъяснение кода))) Можно было наваять все с одним списком + парой циклов + условие-if.. Но, у вас что-то нечто крутое, и я тоже хочу до такого уровня скилл прокачать :)
Офлайн
43
boltayka
она у меня в функциональном стиле просто, плюс оформление закошено под лисп (это я так, может быть, неудачно пошутил). В питоне оно невыразительно смотрится, поэтому так обычно не делают. Разъяснение не нужно на самом деле, т.к. с этими отступами должно читаться легко, вы наверное просто не знаете что-нибудь из map,filter или iter. Читать надо с конца:
Офлайн
0
Всем привет! Я новобранец на этом форуме, начал осваивать Python пару дней назад :-)
По задаче:
Подскажите, пожалуйста, как можно узнать кол-во слов в строке?
f = open('C:\\Users\\ASUS\\Desktop\\For_Test.txt', 'r') str = f.read() f.close() val = (len(str.split())) print(val)
Если в split не передавать параметров, то любая пробельная строка (пробел, новая строка и т.д.) считается разделителем. В явном виде можно в функцию split передать параметр “ ” (т.е. пробел), а к конечному результату прибавить 1. Отредактировано Mambet (Дек. 13, 2018 19:19:50)
Офлайн
221
Mambetвидимо в интернете тоже. Так делать не надо
Я новобранец на этом форуме
Офлайн