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.
Use a list comprehension:
def capitalize(s, applyToAll=False):
if applyToAll:
l = [w.capitalize() for w in s.split()]
return " ".join(l)
else:
return s.capitalize()
what do yo guys use in python to debug?
print
statements for complicated pieces of code, the interactive interpreter for anything else. I write a lot of tests through, and run them with nose.