gpt4 book ai didi

python - string.rstrip() 正在删除多余的字符

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:04 26 4
gpt4 key购买 nike

为什么这条语句会删除 'PIPELINE' 中的 'E':

In: 'PIPELINE_DEV'.rstrip('_DEV')
Out: 'PIPELIN'

但是这个语句并没有删除'S':

In: 'PIPELINES_DEV'.rstrip('_DEV')
Out: 'PIPELINES'

此语句删除末尾的所有 E:

In: 'PIPELINEEEEEEEE_DEV'.rstrip('_DEV')
Out: 'PIPELIN'

当我将 rstrip 变成 2 个单独的语句时,它工作正常:

In: 'PIPELINE_DEV'.rstrip('DEV').rstrip('_')
Out: 'PIPELINE'

最佳答案

rstrip 从应用它的字符串中删除您提供的字符的任何尾随实例,直到它找到不匹配的内容。这在 its documentation 中说明:

The chars argument is not a suffix; rather, all combinations of its values are stripped

使用 rstrip('_DEV') 它将从字符串中删除 _DEV,然后删除所有 E(或 'D 's 或 'V's 或 '_'s) 因为它们属于您提供的字符集(并且没有其他字符是'已找到该集合中的 t)。

当您使用 .rstrip('DEV').rstrip('_') 时,对 rstrip 的第一次调用会剥离 'DEV' 然后停止,因为 '_' 不在字符集 'DEV' 中。当第二次调用 rstrip 时,'_' 被删除。


请注意,在 Python >= 3.9 中,str.removesuffixadded为了解决这个普遍的误解。使用 removesuffix,您可以提供一个已删除的后缀字符串(如果存在)作为应用它的字符串的后缀。

你的例子:

'PIPELINE_DEV'.removesuffix('_DEV')

只会删除 '_DEV' 后缀。

关于python - string.rstrip() 正在删除多余的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46222645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com