【问题标题】:How to capitalize certain index of a string in a list?如何大写列表中字符串的某些索引?
【发布时间】:2019-10-09 12:07:24
【问题描述】:

我有一个包含多个刺痛的列表。 字符串都以“*”开头,然后是“[”,中间有一个空格。像这样:

* [context......

现在我想将“c”大写。 换句话说,我想将所有字符串的第一个字母大写。但是因为我首先使用符号。 Capitalize() 函数不起作用。

我尝试过像这样将索引大写:

list = [i[3].capitalize() for i in list]

这个的输出,只是大写字母。而不是字符串的其余部分。

【问题讨论】:

    标签: python capitalization capitalize


    【解决方案1】:

    最简单的方法是使用.title(),它会忽略非字母字符:

    >>> my_list = ['* [foo]', '* [bar]']
    >>> map(lambda s: s.title(), my_list)
    ['* [Foo]', '* [Bar]']
    

    或使用列表推导:

    >>> [s.title() for s in my_list]
    ['* [Foo]', '* [Bar]']
    

    【讨论】:

      【解决方案2】:

      这是一个使用upper() 代替大写的示例。参考来自here

      test = ['* [context......', '* [bontext......', '* [zontext......']
      
      test = [i[:3] + i[3:4].upper() + i[4:] for i in test]
      

      【讨论】:

        【解决方案3】:

        尝试:-

        list1 = [ "* [context......", "* [context1......" ]
        
        for x in list1:
        
            print(x[:3] + x[3].capitalize() + x[4:])
        

        输出:-

        * [Context......
        * [Context1......
        

        【讨论】:

          【解决方案4】:

          如果他们都是这样开始的,那么我认为这会做你想做的。

          list_ = [i[:3] + i[3:].capitalize() for i in list_]

          请注意,您不应使用内置关键字 list 作为变量名(它在代码中涵盖了其用途)。

          【讨论】:

          • 谢谢,效果很好!我不使用列表作为变量名,只是为了演示而更改它:-)
          猜你喜欢
          • 2015-06-01
          • 2013-02-07
          • 1970-01-01
          • 2011-11-30
          • 2020-05-13
          • 1970-01-01
          • 1970-01-01
          • 2019-12-24
          • 2019-04-06
          相关资源
          最近更新 更多