Подскажите пожалуйста, есть ли возможность, оптимизировать по скорости, вот эту функцию getContext:
def toUpper( text ): buff = text.decode( 'UTF-8', 'ignore' ) return buff.upper().encode( 'UTF-8', 'ignore' ) def toLower( text ): buff = text.decode( 'UTF-8', 'ignore' ) return buff.lower().encode( 'UTF-8', 'ignore' ) #-------------------------------------------------------------------------------- # # Функция возвращает список уникальных значений в виде множества (set) # из переданных аргументов, которые раздроблены на слова длинна # которых первышает 2 символа # #-------------------------------------------------------------------------------- UPPER = 0 LOWER = 1 def getContext( capitalize = UPPER, *args ): if not args: return None itruple = set() itstr = '' for x in args: # Проход по всем передаваемым аргументам if isinstance( x, tuple ): # Проверка на передачу кортежа for y in x: # Проход по кортежу if isinstance( y, str ): # Вы бираем только тектстовые поля itruple |= set( y.split() ) # Делим текст на слова и объединяем в одно множетсво else: itstr = "{0} {1}".format( itstr, x ) # В случае передачи строк объединяем в одну строку itruple |= set( itstr.split() ) # Делим текст на слова и объединяем в одно множетсво # Формируем сет для ускорения в нем поиска из всех слов что больше 2 символов context = {toUpper( x ) if capitalize == UPPER else toLower( x ) for x in itruple if len( x ) > 2 } return context #---------------------------------------------------------------------------------------------------------