2

遵循某种公认的模式,删除字符串最后一位的最佳方法是什么?例如:

s = 'some Strings-and-stuff - SomeOther Strings-and-stuff - TAke.THis last -part away.txt'

将返回:

'some Strings-and-stuff - SomeOther Strings-and-stuff'

当由某个查找模式 ' -' 并在最后一个字符串出现后删除最后一个字符串的函数进行操作' - '时。

编辑:给出的答案是:

new_string = ' - '.join(s.split(' - ')[0:-1])

我尝试过的其他事情:

>>> re.sub(r'(.*) - ', '', s[::-1])[::-1]
'some Strings-and-stuff'

使用建议的.split()功能,我可以通过以下方式获得输出:

>>> p = s.split(' - ')
>>> p.pop()
'TAke.THis last -part away.txt'
>>> ' - '.join(p)
'some Strings-and-stuff - SomeOther Strings-and-stuff'

它有效,但另一个建议的答案是摆脱非一个衬里pop()del功能的更好方法。

4

2 回答 2

2

这将在一行中为您提供所需的结果:

s = " - ".join(s.split(' - ')[:-1])
于 2013-05-06T18:42:05.757 回答
2

你想为此使用 split !

In [130]: s = 'some Strings-and-stuff - SomeOther Strings-and-stuff - TAke.THis last -part away.txt'

In [131]: s.split(" - ")[0:-1]
Out[131]: ['some Strings-and-stuff', 'SomeOther Strings-and-stuff']

当你用“ - ”分割时,它将返回一个列表,其中包含在字符串中用“ - ”分隔的项目。

然后你从第一个项目索引到最后一个项目,这就是为什么[0:-1]在拆分之后

于 2013-05-06T18:37:38.390 回答