如何用'and'替换字符串中的最后一个逗号?

时间:2020-07-30 15:27:47

标签: python

假设我有一个用逗号分隔的字符串

FIT_CENTER

我想用“ and”替换最后一个逗号,使它变为

'apple,ball,cat'

3 个答案:

答案 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]
  • 反转字符串
  • 用'。'代替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)