I am new to python and I am trying to create a capitalize function that either capitalizes all words in a string or only the first word. Here is my function
def
The bread-and-butter way to do this is to use a list comprehension:
>>> l = ['one', 'two', 'three']
>>> [w.capitalize() for w in l]
['One', 'Two', 'Three']
This creates a copy of the list, with the expression applied to each of the items.
If you don't want to create a copy, you could do this...
>>> for i, w in enumerate(l):
... l[i] = w.capitalize()
...
>>> l
['One', 'Two', 'Three']
...or this:
l[:] = (w.capitalize() for w in l)
The latter is probably the most elegant way to alter the list in-place, but note that it uses more temporary storage then the enumerate method.