liyuhao liyuhao - 1 year ago 127
Python Question

better way to invert case of string

I am learning python and meet an exercise:

Strings. Create a function that will return another string similar to the input string, but with its case inverted. For example, input of "Mr. Ed" will result in "mR. eD" as the output string.

My Code is:

name = 'Mr.Ed'
name_list = []

for i in name:
if i.isupper():
elif i.islower():

print ''.join(name_list)

Is there any better way to solve it? My solution seems strange.

Answer Source

Your solution is perfectly fine. You don't need three branches though, because str.upper() will return str when upper is not applicable anyway.

With generator expressions, this can be shortened to:

>>> name = 'Mr.Ed'
>>> ''.join(c.lower() if c.isupper() else c.upper() for c in name)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download