On Jul 28, 5:02 am, Bearophile <bearophileh...@lycos.com> wrote: > On Jul 28, 10:26 am, NiklasRTZ <nikla...@gmail.com> wrote: > > > Newbie hello onwards to the .py manual asks meantime how the longest > > word gets determined? > > First word, ok > > 'a aa aaa aa'[:'a aa aaa aa'.find(' ',1,10)] > > Your language is not easy to understand, but I think you want to find > the longest word in a string. > If this is the input string: > txt = "a aa aaa aa" > > There are several ways to do it, I'll show a simple one. > > You can split it into its parts (not having Python a built-in lazy > split yet, you can split it all at once). You can do it with the > string split method. It produces a list of the words, more or less > (but you may have words like "gone,", you may have to take care of > them too, this requires some code. > > Once you have a list of words, you have to take the longest. A simple > way is to replace each word with a tuple that contains the length of > the word and the word itself, then pick the tuple with the highest > length value. But Python allows you to do such operation in a faster > way: you can use the max() function, it has a "key" function that > allows you to remap on the fly what you mean by "max". So you just > have to give it a function (reference) that given the word spits its > length, such function is "len" itself. > > If you instead want to find the position of the longest word the > program gets a little longer. Ask if you need something different. > > Bye, > bearophile
Thank you. This seems to work: sorted("a AAA aa aaaaa sdfsdfsdfsdf vv".split(' '),lambda a,b: len(a)- len(b))[-1] 'sdfsdfsdfsdf' -- http://mail.python.org/mailman/listinfo/python-list