从python中的字符串中删除一组前缀字符
问题描述:
我想从字符串“@@@@ b @@”中删除所有前缀“@” 预期的输出是“b @@”(并非所有的' @”但只有前缀) 如果没有前缀‘@’,它应该返回原始字符串本身 这是代码,我想:(我使用python 2.X)从python中的字符串中删除一组前缀字符
mylist = []
def remove(S):
mylist.append(S)
j=0
for i in range(len(S)):
if mylist[0][j]=='@':
S = S[:j] + S[j + 1:]
j+=1
return S
else:
return S
break
a = remove("@@@@[email protected]@")
print a
答
使用lstrip()
返回删除前导字符的字符串的副本。 字符参数是一个字符串,指定要删除的字符集。
>>> "@@@@[email protected]@".lstrip("@")
'[email protected]@'
答
def remove(S): return S[4:] if S.startswith('@@@@') else S
>>> remove('@@@@[email protected]@')
'[email protected]@'
>>> remove('@@@[email protected]@')
'@@@[email protected]@'
答
在使用lstrip()
应该很容易,如果你想看看周围要做到这一点,而无需使用lstrip()
功能,您可以通过每一个字符,直到@
迭代被发现,然后切片,其余新字符串:
a = "@@@@[email protected]@"
for index, ch in enumerate(a):
if ch != '@':
new_str = a[index:]
break
print(new_str)
什么不起作用?你得到什么输出? –
只需执行'a.lstrip('@')'。 – ForceBru