我有一个像'- 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-'
但我正在寻找一种更有效/更优化的方法来实现这个目标
答案 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()
方法(分别从字符串末尾或两端删除)。