【问题标题】:inserting characters at the start and end of a string在字符串的开头和结尾插入字符
【发布时间】:2021-05-13 14:30:52
【问题描述】:

我是新手,正在尝试找到一种在字符串的开头和结尾插入多个 L 的方法。所以如果我有一个字符串,上面写着

“今天早上我把蛋糕放在哪里了”

我想在开头插入 1 L,在结尾插入 2 L,所以它看起来像:“L 今天早上我把纸杯蛋糕放在哪里了”我该怎么做。谢谢

【问题讨论】:

    标签: python


    【解决方案1】:

    字符串是不可变的,因此您不能将字符插入现有字符串。您必须创建一个新字符串。您可以使用字符串连接来做您想做的事情:

    yourstring = "L" + yourstring + "LL"
    

    请注意,您还可以使用乘法创建一个带有 n Ls 的字符串:

    m = 1
    n = 2
    yourstring = ("L" * m) + yourstring + ("L" * n)
    

    【讨论】:

      【解决方案2】:

      为了完整性以及其他答案:

      yourstring = "L%sLL" % yourstring
      

      或者,更向前兼容 Python 3.x:

      yourstring = "L{0}LL".format(yourstring)
      

      【讨论】:

      • 对于第二个例子,.format 只使用一个参数'0' 是不必要的,对吧?
      • @quapka: 如果代码需要兼容 Python 2.6 就需要
      【解决方案3】:

      你也可以使用join:

      yourstring = ''.join(('L','yourstring','LL'))
      

      结果:

      >>> yourstring
      'LyourstringLL'
      

      【讨论】:

      • 10 年后,我仍然不明白为什么在 join 方法中添加一组额外的括号可以使其工作。
      【解决方案4】:

      如果您想在现有字符串的其他位置插入其他字符串,您可以使用下面的选择方法。

      第二个位置的调用字符:

      >>> s = "0123456789"
      >>> s[2]
      '2'
      

      带有开始和结束位置的调用范围:

      >>> s[4:6]
      '45'
      

      在该位置之前调用字符串的一部分:

      >>> s[:6]
      '012345'
      

      在该位置之后调用字符串的一部分:

      >>> s[4:]
      '456789'
      

      将字符串插入第 5 个位置。

      >>> s = s[:5] + "L" + s[5:]
      >>> s
      '01234L56789'
      

      同样s 等价于s[:]

      有了你的问题,你可以使用你所有的字符串,即

      >>> s = "L" + s + "LL"
      

      或者如果"L" 是其他字符串(例如我称之为l),那么您可以使用该代码:

      >>> s = l + s + (l * 2)
      

      【讨论】:

        【解决方案5】:

        添加到C2H5OH's answer,在 Python 3.6+ 中,您可以使用格式字符串使其更简洁:

        s = "something about cupcakes"
        print(f"L{s}LL")
        

        【讨论】:

          【解决方案6】:

          假设我们有一个名为 yourstring 的字符串:

          for x in range(0, [howmanytimes you want it at the beginning]):
              yourstring = "L" + yourstring
          for x in range(0, [howmanytimes you want it at the end]):
              yourstring += "L"
          

          【讨论】:

            【解决方案7】:

            您可以为此使用 f 个字符串

            foo = "where did I put my cupcake this morning"
            bar = 'L'
            foobar = f'{bar*10}{foo}'
            print(foobar)
            

            您可以将 10 替换为您希望将 L 放入字符串的次数 最后你也可以这样做

            foo = "where did I put my cupcake this morning"
            bar = 'L'
            foobar = f'{bar*10}{foo}{bar*10}'
            print(foobar)
            

            【讨论】:

              猜你喜欢
              • 2023-03-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多