Python不在字符串中考虑字符“ c”

时间:2020-08-12 11:53:53

标签: python string nlp

我有一个像这样的字符串:

mystring="Clusterd695c_ROUGE1.csv"

当我使用mystring.rstrip("_ROUGE1.csv")时,我希望返回"Clusterd695c",但得到"Clusterd695"。好像没有看到最后一个字符“ c”。这仅在字符“ c”发生,其他字符有效。像这样:

mystring="Clusterd695f_ROUGE1.csv"
mystring.rstrip("_ROUGE1.csv")

然后我得到的是"Clusterd695f"

我该如何纠正?

1 个答案:

答案 0 :(得分:3)

这让我有些惊讶,但问题是rstrip在提供字符串时会将该字符串视为一个集合,并从字符串末尾删除字符,直到它们不属于该集合为止。由于新创建的集合中有一个“ c”(即 c sv),因此它也会在最后删除“ c”,并停止在“ 5”,因为它不属于字符串“ _ROUGE1.csv”。

一种解决方法是使用替换:mystring.replace("_ROUGE1.csv", "");另一个选择是简单地切掉最后len("_ROUGE1.csv")个字符。 replace方法的一个警告是它将在字符串中的任意位置替换该字符串 ,因此"_ROUGE1.csv_ROUGE1.csv".replace("_ROUGE1.csv", "") == ""