例如,我有两个字符串:
我们有字符串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.split
和str.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])