【问题标题】:Python: Remove a word from string using lstrip [duplicate]Python:使用 lstrip 从字符串中删除一个单词 [重复]
【发布时间】:2016-07-14 09:00:40
【问题描述】:

我有这样的字符串:st= 'Product=Product Name 25' 想lstrip。所需输出:out= 'Product Name 25'

为此,我正在做out = st.lstrip('Product=')

在这里,我得到的输出为out= 'Name 25'。这是我不想要的。 因为它正在删除我的字符串中的所有出现,但需要删除第一次出现。

所需的输出应为:out= 'Product Name 25'

【问题讨论】:

  • 这是因为lstrip 接受要删除的字符集,而不是要删除的字符串模式。
  • 你说你想删除第一个出现。这意味着字符串Product= 可以出现在字符串中的任何地方,而不仅仅是在开头?

标签: python


【解决方案1】:

改用拆分:

>>> st= 'Product=Product Name 25'
>>> st.split("Product=")[1]
'Product Name 25'

【讨论】:

    【解决方案2】:

    改用replace

    st = 'Product=Product Name 25'
    print(st.replace('Product=', ''))
    >> Product Name 25
    

    如果不是'=',您也可以利用replace 具有的count 参数,例如:

    st = 'Product Product Name 25'
    print(st.replace('Product', '', 1))
    >> Product Name 25
    

    【讨论】:

      【解决方案3】:

      您可以使用out = st.replace('Product=Product','Product')out = st.replace('Product=Product','')。我倾向于发现它简单易读。

      【讨论】:

        【解决方案4】:

        以防万一您从文本文件中读取键值对,标准库中有一个 python 模块:ConfigParser

        【讨论】:

          【解决方案5】:

          根据文档,lstrip 函数删除字符中的字符。

          >>> help(str.lstrip)
          
          Help on method_descriptor:
          
          lstrip(...)
              S.lstrip([chars]) -> str
          
              Return a copy of the string S with leading whitespace removed.
              **If chars is given and not None, remove characters in chars instead.**
          

          所以st.lstrip('Product=') 删除了“Product=Product Name 25”开头的“P”、“r”、“o”、“d”、“u”、“c”、“t”、“=” .那么,这两个字就去掉了!

          我认为您的字符串代表“key=value”对。 最好的拆分方式是使用split()方法:

          st = "Product=Product Name 25"
          
          key, value = st.split("=")
          print("key: " + key)
          print("value: " + value)
          

          你得到:

          key: Product
          value: Product Name 25
          

          只有值:

          value = st.split("=")[1]
          print("value only: " + value)
          

          你得到:

          value only: Product Name 25
          

          如果您想要“左修剪”:

          p = "Product="
          value = st[len(p):]
          print("trimmed value: " + value)
          

          你得到:

          trimmed value: Product Name 25
          

          【讨论】:

            猜你喜欢
            • 2013-08-11
            • 2012-03-14
            • 2017-07-17
            • 2011-12-09
            • 1970-01-01
            • 2021-09-29
            • 1970-01-01
            相关资源
            最近更新 更多