假设我有一个用逗号分隔的字符串
FIT_CENTER
我想用“ and”替换最后一个逗号,使它变为
'apple,ball,cat'
答案 0 :(得分:2)
FULLSCREEN = False
if pygame.key.get_pressed()[pygame.K_F5]:
FULLSCREEN = True
win = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
if pygame.key.get_pressed()[pygame.K_ESCAPE]:
FULLSCREEN = False
win = pygame.display.set_mode((1000, 600))
将在这里成为您的朋友
rpartition
def replace_last(string, delimiter, replacement):
start, _, end = string.rpartition(delimiter)
return start + replacement + end
print(replace_last('apple,ball,cat', ',', ' and '))
答案 1 :(得分:2)
您可以使用.split()通过char分割字符串
String = 'apple,ball,cat'
s = String.split(",")
输出-> ['苹果','球','猫']
现在您可以选择所有元素,而不需要最后一个
s = String.split(",")[:-1]
输出-> ['苹果','球']
现在使用join函数并将这些元素之间用','连接
string2 = ",".join(String.split(",")[:-1])
输出->苹果,球
现在添加最后一个带有“和”的元素
string2 = ",".join(String.split(",")[:-1]) + " and " + String.split(",")[-1]
输出->苹果,球和猫
我不知道这是否是最好的方法,但这是一种方法;)
另外,您可以在字符串中添加更多元素,该方法仍然可以使用。
完整代码:
String = 'apple,ball,cat'
string2 = ",".join(String.split(",")[:-1]) + " and " + String.split(",")[-1]
@AKX的答案更好;)
答案 2 :(得分:0)
使用正则表达式的替代方法
re.sub(r',', '.', String[::-1], 1)[::-1]
与AKX解决方案的性能相比,该版本非常糟糕。
In [39]: def f1(s):
...: start, _, end = s.rpartition(',')
...: return start + '.' + end
In [40]: def f2(s):
...: return re.sub(r',', '.', s[::-1], 1)[::-1]
...:
In [44]: %timeit f1(s)
364 ns ± 8.91 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [45]: %timeit f2(s)
1.51 µs ± 5.54 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)