【问题标题】:Capitalize a string将字符串大写
【发布时间】:2010-09-26 00:47:26
【问题描述】:

有没有人知道一种非常简单的方法,只将字符串的第一个字母大写,而不管字符串其余部分的大小写?

例如:

asimpletest -> Asimpletest
aSimpleTest -> ASimpleTest

我也希望能够处理所有字符串长度。

【问题讨论】:

    标签: python string


    【解决方案1】:

    可以在此处找到有关字符串函数的文档https://docs.python.org/2.6/library/string.html#string-functions
    下面的代码将第一个字母大写,并以空格作为分隔符

    s="gf12 23sadasd"
    print( string.capwords(s, ' ') )
    

    Gf12 23sadasd

    【讨论】:

    • 这应该是答案,因为大写只会限制第一个单词
    【解决方案2】:

    您可以使用str.capitalize() 函数来做到这一点

    In [1]: x = "hello"
    
    In [2]: x.capitalize()
    Out[2]: 'Hello'
    

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      @saua是对的,而且

      s = s[:1].upper() + s[1:]
      

      适用于任何字符串。

      【讨论】:

      • 不错!这些都是我不知道的小技巧……我应该更频繁地使用 Python。
      • 为什么不s = s[0].upper() + s[1:]?为什么是[:1]
      • 正如@saua 所说,s[0] 将在空字符串上失败。
      【解决方案4】:
      s = s[0].upper() + s[1:]
      

      这应该适用于每个字符串,除了空字符串(s="" 时)。

      【讨论】:

      • 击败我,你的更优雅。
      【解决方案5】:

      第一个单词大写;

      a="asimpletest"
      print a.capitalize()
      

      要使所有字符串大写,请使用以下提示;

      print a.upper()
      

      这是我认为的简单的一个。

      【讨论】:

        【解决方案6】:
        str = str[:].upper()
        

        在我看来这是最简单的方法

        【讨论】:

        • 这是完全错误的,因为它将字符串的每个字符都转换为大写。另外,[:] 没用。
        【解决方案7】:

        这实际上给了你一个大写的单词,而不是仅仅大写第一个字母

        大写字母 -> 大写

        def capitalize(str): 
            return str[:1].upper() + str[1:].lower().......
        

        【讨论】:

          【解决方案8】:
          >>> b = "my name"
          >>> b.capitalize()
          'My name'
          >>> b.title()
          'My Name'
          

          【讨论】:

          • 使用标准库是必经之路。
          • ... 除了 capitalize() 删除任何其他现有的上限,发问者明确不希望发生:'aSimpleTest'.capitalize() => 'Asimpletest'
          • @pfctdayelise ..您是否对所有不满足此要求的答案投了反对票,或者只是我的:)?不过,我同意你的观察。布莱尔康拉德的回答是最准确的。但是,其他答案在提供有关字符串大写的有用信息方面增加了价值,包括我的。其中三个是在接受的答案之后添加的。
          • @tigeronk2 当答案不符合问题中明确规定的要求时,我将其称为“误导”而不是“增加价值”,尤其是当您没有指出你的方法。
          【解决方案9】:

          your_string.title() 呢?

          例如"banana".title() -> Banana

          【讨论】:

          • str.title 将字符串中的每个单词大写
          • @John La Rooy ...这正是我想要做的,而无需编写新的 def 来拆分,将每个单词大写,然后将其重新组合在一起...投票给 skyler
          猜你喜欢
          • 2011-05-28
          • 2011-06-04
          • 2018-09-16
          • 1970-01-01
          • 2017-10-22
          • 1970-01-01
          • 2014-02-04
          • 2016-01-25
          相关资源
          最近更新 更多