我正在寻找一种更简单的方法来删除列表中每个字符串前面的“-”。 (如果字符串前面有一个,则只有第一个'-')
note_tmp = [
"-some-text",
"-other text",
"another-one",
"-text number four"
]
note_done = []
for note in note_tmp:
if note.startswith("-"):
note_done.append(note[1:])
else:
note_done.append(note)
print(note_done)
我觉得这写起来容易多了...
感谢您的帮助;)
答案 0 :(得分:3)
str.lstrip('-')
应该这样做:
In [83]: note_tmp = [
...: "-some-text",
...: "-other text",
...: "another-one",
...: "-text number four"
...: ]
In [84]: [s.lstrip('-') for s in note_tmp]
Out[84]: ['some-text', 'other text', 'another-one', 'text number four']
S.lstrip([chars])-> str
返回除去前导空格的字符串S的副本。 如果指定了chars而不是None,则改为删除chars中的字符。
答案 1 :(得分:2)
您可以结合使用str.lstrip()
和 list理解力来实现以下目的:
my_list = [
"-some-text",
"-other text",
"another-one",
"-text number four"
]
new_list = [s.lstrip('-') for s in my_list]
new_list
将保留值:
['some-text', 'other text', 'another-one', 'text number four']
答案 2 :(得分:1)
只需使用列表切片和列表理解来添加替代方法;
note_tmp = [
"-some-text",
"-other text",
"another-one",
"-text number four"
]
new_note_tmp = [x[1:] if x[0] == '-' else x for x in note_tmp]
print(new_note_tmp)
>>>['some-text', 'other text', 'another-one', 'text number four']