Use a recursive solution (and using list comprehensions also helps make it more compact):
def capitalize_nested(t):
if isinstance(t, list):
return [capitalize_nested(s) for s in t]
else:
return t.capitalize()
For example:
print capitalize_nested(['this', 'that', ['other']])
# ['This', 'That', ['Other']]