【问题标题】:Remove the first character of a string删除字符串的第一个字符
【发布时间】:2011-06-24 03:38:23
【问题描述】:

我想删除字符串的第一个字符。

例如,我的字符串以 : 开头,我只想删除它。字符串中有多次出现的: 不应被删除。

我正在用 Python 编写代码。

【问题讨论】:

    标签: python string


    【解决方案1】:

    python 2.x

    s = ":dfa:sif:e"
    print s[1:]
    

    python 3.x

    s = ":dfa:sif:e"
    print(s[1:])
    

    两个打印件

    dfa:sif:e
    

    【讨论】:

    • 如果这是公认的答案,那么问题应该是“如何删除字符串的第一个字符”。
    • @Spaceghost:OP 声明“我特别想删除第一个字符。”
    • 你说得对,我只是在回答问题的标题和正文之间的差异。事后看来,应该花时间喝咖啡。 :-)
    【解决方案2】:

    您的问题似乎不清楚。你说你想删除“某个位置的一个字符”,然后继续说你想删除一个特定的字符。

    如果您只需要删除第一个字符,您会这样做:

    s = ":dfa:sif:e"
    fixed = s[1:]
    

    如果你想删除一个特定位置的字符,你会这样做:

    s = ":dfa:sif:e"
    fixed = s[0:pos]+s[pos+1:]
    

    如果你需要删除一个特定的字符,比如':',当它第一次出现在一个字符串中时,你会这样做:

    s = ":dfa:sif:e"
    fixed = ''.join(s.split(':', 1))
    

    【讨论】:

    • 最后一个例子可以更容易地使用s.replace(":", "", 1)-
    【解决方案3】:

    根据字符串的结构,可以使用lstrip

    str = str.lstrip(':')
    

    但这会删除开头的所有冒号,即如果您有::foo,则结果将是foo。但是,如果您还有不以冒号开头的字符串并且您不想删除第一个字符,则此功能很有帮助。

    【讨论】:

      【解决方案4】:

      这样做:

      r = "hello"
      r = r[1:]
      print(r) # ello
      

      【讨论】:

        【解决方案5】:

        删除一个字符:

        def del_char(string, indexes):
        
            'deletes all the indexes from the string and returns the new one'
        
            return ''.join((char for idx, char in enumerate(string) if idx not in indexes))
        

        它删除索引中的所有字符;你可以在你的情况下使用它del_char(your_string, [0])

        【讨论】:

          猜你喜欢
          • 2011-05-29
          • 1970-01-01
          • 1970-01-01
          • 2012-11-27
          • 2013-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多