更好的方法来反转字符串的情况

liy*_*hao 11 python

我正在学习python并参加一项练习:

字符串.创建一个函数,该函数将返回与输入字符串类似的另一个字符串,但其大小写已反转.例如,输入"Mr. Ed"将导致"mR.DD"作为输出字符串.

我的代码是:

name = 'Mr.Ed'
name_list = []

for i in name:
    if i.isupper():
        name_list.append(i.lower())
    elif i.islower():
        name_list.append(i.upper())
    else:
        name_list.append(i)

print ''.join(name_list)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解决它?我的解决方案似乎很奇

wen*_*zul 103

你可以这样做name.swapcase().查找字符串方法.

  • 为什么这不是公认的答案? (24认同)
  • @JuanCortés因为受让人希望改进他们的*代码.顺便说一句,这个案例说明了为什么stackoverflow.com和codereview.stackexchange.com是不同的项目. (2认同)

ch3*_*3ka 18

你的解决方案非常好.你不需要三个分支,因为str.upper()无论如何,当upper不适用时会返回str.

使用生成器表达式,可以缩短为:

>>> name = 'Mr.Ed'
>>> ''.join(c.lower() if c.isupper() else c.upper() for c in name)
'mR.eD'
Run Code Online (Sandbox Code Playgroud)


Jor*_*vis 8

只需使用swapcase()方法:

name = "Mr.Ed"
name = name.swapcase()
Run Code Online (Sandbox Code Playgroud)

输出:mR.eD

- >这只是一个两行代码.

说明:
方法swapcase()返回字符串的副本,其中所有基于案例的字符都已交换其大小写.

快乐的编码!