In article <mailman.100.1273653829.32709.python-l...@python.org>, Stefan Behnel <stefan...@behnel.de> wrote: >superpollo, 11.05.2010 17:03: >> Aahz ha scritto: >>> In article <mailman.11.1273548189.32709.python-l...@python.org>, >>> Terry Reedy <tjre...@udel.edu> wrote: >>>> On 5/10/2010 5:35 AM, James Mills wrote: >>>>> On Mon, May 10, 2010 at 6:50 PM, Xavier Ho<cont...@xavierho.com> wrote: >>>>>> Have I missed something, or wouldn't this work just as well: >>>>>> >>>>>>>>> list_of_strings = ['2', 'awes', '3465sdg', 'dbsdf', 'asdgas'] >>>>>>>>> [word for word in list_of_strings if word[0] == 'a'] >>>>>> ['awes', 'asdgas'] >>>>> I would do this for completeness (just in case): >>>>> >>>>>>>>> [word for word in list_of_strings if word and word[0] == 'a'] >>>>> Just guards against empty strings which may or may not be in the list. >>>> ... word[0:1] does the same thing. All Python programmers should >>>> learn to use slicing to extract a char from a string that might be >>>> empty. >>>> The method call of .startswith() will be slower, I am sure. >>> >>> And if it is slower, so what? Using startswith() makes for faster >>> reading of the code for me, and I'm sure I'm not the only one. >> >> also, what if the OP intended "words that begin with x" with x a string >> (as opposed to a single character) ? > > word[:len(x)] == x > >will work in that case.
But that's now going to be slower. ;-) (Unless one makes the obvious optimization to hoist len(x) out of the loop.) -- Aahz (a...@pythoncraft.com) <*> http://www.pythoncraft.com/ f u cn rd ths, u cn gt a gd jb n nx prgrmmng. -- http://mail.python.org/mailman/listinfo/python-list