Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2009 09:49:46

SmallTalk
От:
Зарегистрирован: 2009-11-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование reduce

Объясните чайнику как используется данная функция допустим есть блок кода по подсчету числа слов в файле

PUNCTUATION_MARKS = (',','.','!','?','"\n"','"\t"' )

def count_quantity_words(text):
count_words = 0
for char in text:
if char in PUNCTUATION_MARKS:
count_words += 1
return count_words
как здесь ее можно применить?



Офлайн

#2 Ноя. 3, 2009 17:55:18

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование reduce

:)
Работает так:

>>> def f(x, y):
... print x, y
... return x + y
...
>>> reduce(f, [1, 2, 3, 4, 5])
1 2
3 3
6 4
10 5
15
т.е. агрументами в функцию f передаётся результат предыдущей итерации и следующий объект из итеруемого объекта (в нашем случае списка )

К конкретному случаю применить можно, например, так:
reduce(lambda x, y: x+y,(1 for x in s if x in (',','.','!','?','"\n"','"\t"')), 0)



Офлайн

#3 Ноя. 3, 2009 18:06:04

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Использование reduce

Так?

reduce(lambda x, y: x + int(y in ',.!?\n\t'), text, 0)



Отредактировано (Ноя. 3, 2009 18:14:14)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version