Я ищу более простой способ удалить '-' перед каждой строкой в списке. (только первый "-", если перед строкой есть один)
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)
Я думаю, что это может быть написано гораздо проще...
Спасибо за вашу помощь ;)
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 с удаленными начальными пробелами. Если заданы символы, а не None, вместо них удалите символы в символах.
Вы можете использовать str.lstrip()
со списком, чтобы достичь этого как:
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']
Просто добавьте альтернативный подход, используя нарезку списка и понимание списка;
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']