Найти - Пользователи
Полная версия: Использование reduce
Начало » Python для новичков » Использование reduce
1
SmallTalk
Объясните чайнику как используется данная функция допустим есть блок кода по подсчету числа слов в файле
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
как здесь ее можно применить?
ofigetitelno
:)
Работает так:
>>> 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)
Ed
Так?
reduce(lambda x, y: x + int(y in ',.!?\n\t'), text, 0)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB