pythonic方法在字符串的开头或结尾替换特殊字符

时间:2016-03-14 07:50:55

标签: python python-2.7

我有一个像'- 36 x 45 x 2.75-size-'这样的字符串。我想删除此字符串开头的特殊字符('',' - '等)。我已经实现了一种实现这个的肮脏方式

    lis1 = []
>>> flag = True
>>> for x in str1:
...   if flag and x=='-':
...     flag = False
...   else:
...     lis1.append(x)
... 
>>> lis1
[' ', '3', '6', ' ', 'x', ' ', '4', '5', ' ', 'x', ' ', '2', '.', '7', '5', '-', 'k', 'd', 'j', 'd', 'f', 'n', 'd', '-']
>>> ''.join(lis1)
' 36 x 45 x 2.75-size-'

但我正在寻找一种更有效/更优化的方法来实现这个目标

1 个答案:

答案 0 :(得分:2)

使用str.lstrip() method从一开始删除一组字符:

str1 = str1.lstrip(' -')

该参数被视为 set ,因此该字符串中出现的任何字符将从开头删除,直到该字符串的第一个字符为no更长的时间出现在论证中。

在上面的示例中,任何空格或-破折号都会从开头删除,无论它们出现的顺序如何:

>>> str1 = '- 36 x 45 x 2.75-size-'
>>> str1.lstrip(' -')
'36 x 45 x 2.75-size-'

有相应的str.rstrip()str.strip()方法(分别从字符串末尾或两端删除)。