【问题标题】:Converting specific letters to uppercase or lowercase in python在python中将特定字母转换为大写或小写
【发布时间】:2015-06-13 19:47:03
【问题描述】:

所以要返回转换为小写或大写的字符串的副本,显然使用lower()upper()

但是如何制作一个字符串的副本,其中特定字母转换为大写或小写。 例如我如何将'test' 转换为'TesT'

这真的让我感到困惑,非常感谢您的帮助

知道了,感谢 Cyber​​ 和 Matt 的帮助!

【问题讨论】:

  • 你能澄清一下你所说的具体的l是什么意思吗?因为根据你的定义,它可以有很多答案!!!
  • 如果其中一个答案有助于解决您的问题,请通过单击它旁边的复选标记来考虑accepting。它会将您的问题标记为您当前满意地解决,并向您和回答者奖励reputation points

标签: python string helpers


【解决方案1】:

如果您只是想替换特定字母:

>>> s = "test"
>>> s.replace("t", "T")
'TesT'

【讨论】:

  • 在这里我总是使用正则表达式来替换字母。感谢您的提示!
【解决方案2】:

有一个明显的解决方案,将字符串切片并在您想要的部分上方:

test = 'test'
test = test[0].upper() + test[1:-1] + test[-1].upper()

【讨论】:

  • 仅当您已经知道要更改的字母的位置时。这对于任意字符串并不可靠...
  • 但是......必须有某种方法可以做到不切片
【解决方案3】:
import re
input = 'test'
change_to_upper = 't'
input = re.sub(change_to_upper, change_to_upper.upper(), input)

这使用正则表达式引擎查找与change_to_upper 匹配的任何内容并将其替换为大写版本。

【讨论】:

    【解决方案4】:

    您可以使用str.translate() 方法:

    import string
    
    # Letters that should be upper-cased
    letters = "tzqryp"
    table = string.maketrans(letters, letters.upper())
    
    
    word = "test"
    print word.translate(table)
    

    【讨论】:

      【解决方案5】:

      作为用其他东西替换所有字母的一般方法

      >>> swaps = {'t':'T', 'd':'D'}
      >>> ''.join(swaps.get(i,i) for i in 'dictionary')
      'DicTionary'
      

      【讨论】:

        【解决方案6】:

        我会使用 translate()。

        对于python2:

        >>> from string import maketrans
        >>> "test".translate(maketrans("bfty", "BFTY"))
        'TesT'
        

        对于python3:

        >>> "test".translate(str.maketrans("bfty", "BFTY"))
        'TesT'
        

        【讨论】:

          【解决方案7】:

          Python3 可以做到:

          def myfunc(str):
            if len(str)>3:
              return str[:3].capitalize() + str[3:].capitalize()
            else:
              return 'Word is too short!!'
          

          【讨论】:

            【解决方案8】:

            最简单的解决方案:

            >>> letters = "abcdefghijklmnop"
            >>> trantab = str.maketrans(letters, letters.upper())
            >>> print("test string".translate(trantab))
            tEst strING
            

            【讨论】:

              【解决方案9】:

              简单

              chars_to_lower = "MTW"
              "".join([char.lower() if char in chars_to_lower else char for char in item]
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-02-04
                • 2015-07-28
                • 1970-01-01
                • 1970-01-01
                • 2022-01-16
                • 1970-01-01
                • 2015-08-07
                • 1970-01-01
                相关资源
                最近更新 更多