是否可以在 Python 中翻转字符串"around"字符?



例如,我有两个字符串:

我们有字符串hello-world和字符串world

我想创建一个称为 flip(str, arg)的函数,该函数基本上拿起字符串,然后"翻转" arg"之前和之后的字符,如果有的话。

因此,将hello-world传递到flip("hello-world", "-")将成为world-hello,并且flip("world", "-")仍然保留world

一个示例实现如下,但是我想知道是否有库函数或其他内容(我只需要一个位置,使函数看起来不正确(。我似乎找不到我想要的。

def flip(s, arg):
    if arg not in s:
        return s
    index = s.find(arg)
    return s[index+1:] + arg + s[:index]

您可以使用 str.partition,然后逆转拆分并加入:

def flip(s, arg):
    return ''.join(s.partition(arg)[::-1])
flip('hello-world', '-')
# 'world-hello'
flip('world', '-')
# 'world'

请注意,如果字符串有多次出现arg,则将字符串分区在第一个 holly

上。
flip("hello-my-world", '-')
# 'my-world-hello'

如果您想要完整的翻转(反转(,则可以考虑str.splitstr.join

def flip2(s, arg):
    return arg.join(s.split(arg)[::-1])
flip2("hello-my-world", '-')
# 'world-my-hello'

如果您正在寻找一个衬板,则可以执行以下 -

"-".join("Hello-world".split('-')[::-1])

因此,对于更通用的解决方案,您可以首先定义ARG,然后字符串:

arg = '-'
string = 'hello-world'

然后使用 -

arg.join(string.split(arg)[::-1])

最新更新