Thank you for your answer, Steven. Of course it would have been easier to write this function, but unfortunately my task is to do it with a regular expression :(
D. 2011/11/5 Steven D'Aprano <st...@pearwood.info> > Dinara Vakhitova wrote: > >> Hello, >> >> I need to find the words in a corpus, which letters are in the >> alphabetical >> order ("almost", "my" etc.) >> > > Quoting Jamie Zawinski: > > Some people, when confronted with a problem, think "I know, I'll > use regular expressions." Now they have two problems. > > Now you have two problems: find words in the corpus which are in > alphabetical order, and get the damn regular expression to work correctly. > > Don't use a regex for this. It is much simpler to write a Python function > to solve it: > > def letters_in_order(astring): > """Return True if letters in astring are in alphabetical order. > > >>> letters_in_order("almost") > True > >>> letters_in_order("zoology") > False > > """ > if len(astring) <= 1: > return True > for i in range(1, len(astring)): > if astring[i] < astring[i-1]: > # Pair of characters are out of order. > return False > # If none of the pairs are out of order, they whole string > # must be in order. > return True > > words = filter(letters_in_order, corpus) > for word in words: > print(word) > > > > -- > Steven > ______________________________**_________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/**mailman/listinfo/tutor<http://mail.python.org/mailman/listinfo/tutor> > -- *Yours faithfully, Dinara Vakhitova*
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor