On Feb 21, 12:47 am, "Gabriel Genellina" <gagsl-...@yahoo.com.ar> wrote: > En Sat, 21 Feb 2009 01:14:02 -0200, odeits <ode...@gmail.com> escribió: > > > > > On Feb 15, 11:31 pm, odeits <ode...@gmail.com> wrote: > >> It seems what you are actually testing for is if the intersection of > >> the two sets is not empty where the first set is the characters in > >> your word and the second set is the characters in your defined string. > > > To expand on what I was saying I thought i should provide a code > > snippet: > > > WORD = 'g' * 100 > > WORD2 = 'g' * 50 + 'U' > > VOWELS = 'aeiouAEIOU' > > BIGWORD = 'g' * 10000 + 'U' > > > def set_test(vowels, word): > > > vowels = set( iter(vowels)) > > letters = set( iter(word) ) > > > if letters & vowels: > > return True > > else: > > return False > > > with python 2.5 I got 1.30 usec/pass against the BIGWORD > > You could make it slightly faster by removing the iter() call: letters = > set(word) > And (if vowels are really constant) you could pre-build the vowels set. > > -- > Gabriel Genellina
set(word) = set{[word]} meaning a set with one element, the string the call to iter makes it set of the letters making up the word. -- http://mail.python.org/mailman/listinfo/python-list