如果我有一系列我正在使用的 python 字符串,它将始终采用以下形式
initialword_content
我想去掉initialword
部分,这将始终是相同数量的字符,然后我想将所有实例_
转换为空格 - 因为content
其中可能有一些下划线 - 最简单的方法是什么?
strs = "initialword_content"
strs = strs[12:].replace("_", " ")
print strs
由于initialword总是有相同数量的字符,所以你可以得到字符串的后缀。并使用 string.replace 将所有“_”替换为空格。
首先,将字符串拆分一次(使用参数 1 到split
)以获得两部分:丢弃的“初始字”和其余部分,您将所有下划线替换为空格。
s = 'initialword_content'
a, b = s.split('_', 1)
b = b.replace('_', ' ')
# b == 'content'
s = 'initialword_content_with_more_words'
a, b = s.split('_', 1)
b = b.replace('_', ' ')
# b == 'content with more words'
这可以通过一个命令来完成:
s.split('_', 1)[1].replace('_', ' ')
另一种方式:
' '.join(s.split('_')[1:])
或者,如果“initialword”的长度始终相同(并且您不必每次都计算它),请采用@JunHu 的解决方案。
我使用了切片和 replace() 函数。replace() 只是......替换!
string = 'initialword_content'
content = string[12:] # You mentioned that intialword will always be the same length, so I used slicing.
content = content.replace('_', ' ')
例如:
>>> string = 'elephantone_con_ten_t' # elephantone was the first thing I thought of xD
>>> content = string[12:]
>>> content
... con_ten_t
>>> content = content.replace('_', ' ')
>>> content
... con ten t
但是,如果您还想在其他地方引用“elephantone”,请执行以下操作:
>>> string = 'elephantone_con_ten_t'
>>> l = string.split('_', 1) # This will only strip the string ONCE from the left.
>>> l[0]
... 'elephantone'
>>> l[1].replace('_', ' ')
... 'con ten t'