奇怪的剥线

2024-09-27 21:34:10 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
python .rstrip removes one additional character

我有一个字符串vtype定义为

vtype = "vidis.fit"

我想去掉最后的dis.fit,所以

vtype.rstrip("dis.fit")

但最终的结果是v,而不是vi,这是我期望/想要的结果。我有点困惑,有人吗?你知道吗

编辑

谢谢大家。我想它首先让我困惑的原因是,lstriprstrip的命名似乎暗示了某种顺序,尽管它只与空格有关。你知道吗


Tags: 字符串编辑定义onefitadditionalvidis
3条回答

“v”后面的“i”被删除,因为它是'不适'. strip的参数不是要删除的子字符串,而是要删除的字符列表。你知道吗

rstrip实际上takes a sequence of characters at the end of a string to strip,不是要剥离的特定字符串。它正在删除i,因为i在传入的字符序列中。你知道吗

例如,rstrip中字符的顺序无关紧要:

>>> vtype = "vidis.fit"
>>> vtype.rstrip("dis.fit")
'v'
>>> vtype.rstrip("ditfs.")
'v'

字符在其中的次数也不是:

>>> vtype.rstrip("ditffffsssss.")
'v'

作为the docs指定:

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

编辑:为了好玩,如果您真的想解决“如何删除字符串末尾的字符串”问题,请使用rfind和切片:

>>> vtype[:vtype.rfind("dis.fit")]
'vi'

如其他答案所示,rstrip需要移除一系列字符,而不是特定的字符串。你知道吗

"vidis.fit".replace("dis.fit", "") 

会做你想做的事。。。除非不适“序列可能出现多次,或出现在不同的位置。在这种情况下,你可能会想出一些正则表达式的解决方案。你知道吗

相关问题 更多 >

    热门问题