Python:使用lstrip从字符串中删除一个单词
我有如下字符串:Python:使用lstrip从字符串中删除一个单词,python,Python,我有如下字符串:st='Product=Product Name 25' 我想跳。所需输出:out='Product Name 25' 为此,我像out=st.lstrip('Product=') 这里我得到的输出是out='Name 25'。这是我不想要的。 因为它正在删除我字符串中的所有事件,但需要删除第一个事件 所需输出应为:out='Product Name 25'使用拆分: >>> st= 'Product=Product Name 25' >>>
st='Product=Product Name 25'
我想跳。所需输出:out='Product Name 25'
为此,我像out=st.lstrip('Product=')
这里我得到的输出是out='Name 25'
。这是我不想要的。
因为它正在删除我字符串中的所有事件,但需要删除第一个事件
所需输出应为:out='Product Name 25'使用拆分:
>>> st= 'Product=Product Name 25'
>>> st.split("Product=")[1]
'Product Name 25'
使用
替换:
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
您可以执行out=st.replace('Product=Product','Product')
或out=st.replace('Product=Product','')
。我倾向于简单易读 为了防止从文本文件中读取键值对,标准库中有一个python模块用于此:根据文档,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 only: Product Name 25
trimmed value: Product Name 25
只有以下值:
value = st.split("=")[1]
print("value only: " + value)
你会得到:
key: Product
value: Product Name 25
value only: Product Name 25
trimmed value: Product Name 25
如果您想要“左修剪”:
你会得到:
key: Product
value: Product Name 25
value only: Product Name 25
trimmed value: Product Name 25
这是因为接受一组要删除的字符,而不是要删除的字符串模式。您说要删除第一个出现的字符。这意味着字符串Product=
可以出现在字符串中的任何位置,而不仅仅是在开始时?