【问题标题】:Swap case of letters in string input parameter [closed]交换字符串输入参数中的字母大小写[关闭]
【发布时间】:2012-11-05 06:01:09
【问题描述】:

我想在 Python 中编写一个函数,它接受一个包含大小写字母的字符串作为参数,并将大写字母转换为小写,将小写字母转换为大写。

例如:

>>> func('DDDddddd')
'dddDDDDD'

我想用字符串来做,但我不知道怎么做。

【问题讨论】:

  • 欢迎来到 Stack Overflow!看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在发布者已经尝试自己解决问题时才提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(控制台输出、堆栈跟踪、编译器错误 - 不管是什么适用的)。您提供的详细信息越多,您可能收到的答案就越多。

标签: python uppercase lowercase


【解决方案1】:

EDIT - 比我原来的答案简单得多,并且支持 ASCII 和 unicode。感谢评论者。

a = 'aBcD'
a.swapcase()
>> AbCd

原始答案 - 忽略

a = 'aBcD'
''.join(map(str.swapcase, a))
>> AbCd

这会将str.swapcase() 函数映射到字符串a 的每个元素,交换每个字符的大小写并返回一个字符列表。

''.join() 会将列表中的每个字符连接成一个新字符串。

【讨论】:

  • 学习很有趣!我从你@mgilson 的回答中学到了很多 python 的精妙之处,所以我很高兴回报。
  • 为什么要处理单个字符? 'aBcD'.swapcase() 就足够了。
  • 如果有 str.swapcase - 为什么不只是 'Ab'.swapcase() - d0h - 被史蒂夫击败 20 秒 :)?
  • 哇,我在想什么。谢谢大家。
【解决方案2】:

您应该查看string.maketrans 以创建可与str.translate 一起使用的转换表。其他可能有用的常量是string.ascii_lowercasestring.ascii_uppercase

【讨论】:

  • 我试图用 x.islower() 或 x.lower() 来做,但它打印全部大写或全部小写。我想从上到下,从下到上
  • @user1829771 -- 你也可以这样做。你只需要建立一个列表,然后用str.join 加入它。例如''.join(['a','b','c']) 产生 'abc'
猜你喜欢
  • 2015-06-17
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
相关资源
最近更新 更多