Python 有没有更简单的方法来删除数组中每个字符串前面的“-”
我正在寻找一种更简单的方法来删除列表中每个字符串前面的“-”。如果字符串前面有一个“-”,则只显示第一个“-”Python 有没有更简单的方法来删除数组中每个字符串前面的“-”,python,Python,我正在寻找一种更简单的方法来删除列表中每个字符串前面的“-”。如果字符串前面有一个“-”,则只显示第一个“-” 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:]
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)
我认为这可以写得容易得多
谢谢你的帮助 您可以使用列表理解来实现这一点,如下所示:
my_list = [
"-some-text",
"-other text",
"another-one",
"-text number four"
]
new_list = [s.lstrip('-') for s in my_list]
新的_列表将保存值的位置:
['some-text', 'other text', 'another-one', 'text number four']
您可以使用“列表理解”来实现以下目的:
my_list = [
"-some-text",
"-other text",
"another-one",
"-text number four"
]
new_list = [s.lstrip('-') for s in my_list]
新的_列表将保存值的位置:
['some-text', 'other text', 'another-one', 'text number four']
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的副本。
如果给定了字符而不是无,则删除字符中的字符
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的副本。
如果给定了字符而不是无,则删除字符中的字符
只需添加一种替代方法,使用列表切片和列表理解
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']
只需添加一种替代方法,使用列表切片和列表理解
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']
非常感谢。那个worked@swiftlynx乐意帮忙:谢谢;,那个worked@swiftlynx乐意帮忙:谢谢;,谢谢你;,对工作列表的理解并没有使它变短,我不同意,因为它明显缩短了5行。此外,没有人要求一个“更短”的解决方案;但这也不是更短,因为我认为更短意味着更少的时空复杂性;而不是代码获得的行。但它确实有好处,它只删除字符串开头的一个“-”,这与.lstrip版本不同。列表理解不会使它变短。我希望有所不同,因为它明显缩短了5行。此外,没有人要求一个“更短”的解决方案;但这也不是更短,因为我认为更短意味着更少的时空复杂性;而不是代码获得的行。但它确实有好处,它只删除字符串开头的一个“-”,这与.lstrip版本不同。我不知道是否有某种方法;但是我想,;这些方法最终也会如此;即迭代和检查;然后进行修改和追加;你们当然已经做到了。还有一件事可以缩短;删除else块并直接修改主列表(如果有安全副本,我不知道是否有某种方法);但是我想,;这些方法最终也会如此;即迭代和检查;然后进行修改和追加;你们当然已经做到了。还有一件事可以缩短;如果某个地方有安全副本,请删除else块并直接修改主列表