[Tutor] startswith()/endswith() string methods

Danny Yoo dyoo@hkn.eecs.berkeley.edu
Sat Jan 4 22:08:01 2003

On Sun, 5 Jan 2003, Lee Harr wrote:

> >x = ['ben','sandy','roger','hillary','john','betty']
> >How to get indexes of all names which begin with "b"
> How about a list comprehension?
> x = ['ben','sandy','roger','hillary','john','betty']
> [name for name in x if name.find('b') == 0]
> [name for name in x if name.find('er') >= 0]

Hi Lee,

By the way, strings support a 'startswith()' method, so we can replace an
expression like:

    name.find('b') == 0



They're equivalent, but using startswith() makes the intention of the code
slightly clearer to a human reader.

>>> names = ['ben','sandy','roger','hillary','john','betty']
>>> [i for i in range(len(names)) if names[i].startswith('b')]
[0, 5]

If we're curious, we can browse through a complete list of string methods
in the Library Documentation here:


Hope this helps!