如何反转(交换)字符串中每个字母的大小写?

新手上路,请多包涵

我正在学习 Python 并正在做这个练习:

创建一个函数,该函数将返回另一个与输入字符串相似的字符串,但大小写颠倒。例如,输入“Mr.Ed”将导致“mR.eD”作为输出字符串。

我的代码是:

 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))

有没有更简单或更直接的方法来解决它?

原文由 liyuhao 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 432
2 个回答

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

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

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

原文由 ch3ka 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 name.swapcase() 来做到这一点。查找 字符串方法(或查看遗留 Python 2 的旧文档)。

原文由 wenzul 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题