从python中的字符串中删除一组前缀字符

从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 
+0

什么不起作用?你得到什么输出? –

+2

只需执行'a.lstrip('@')'。 – ForceBru

使用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)