rstrip()剥离的内容比Python中应该剥离的多
对于这个给定的代码,我期望的输出是:rstrip()剥离的内容比Python中应该剥离的多,python,Python,对于这个给定的代码,我期望的输出是: 9102314 但我在运行此代码时获得的输出是: 9 10 将12314替换为1-4之间的任何整数序列都会导致相同的错误输出,但当它达到大于5的整数时,就停止剥离字符串。例如,如果我们在12314之间添加了5: k = '9\t10\t12314\t12\t13\t14\t' print(k.rstrip('\t12\t13\t14\t')) 导致输出: 910235 请解释为什么会发生这种情况,我们将不胜感激。我试图查找rstrip()函数的代码,但没有
9102314
但我在运行此代码时获得的输出是:
9 10
将12314替换为1-4之间的任何整数序列都会导致相同的错误输出,但当它达到大于5的整数时,就停止剥离字符串。例如,如果我们在12314之间添加了5:
k = '9\t10\t12314\t12\t13\t14\t'
print(k.rstrip('\t12\t13\t14\t'))
导致输出:
910235
请解释为什么会发生这种情况,我们将不胜感激。我试图查找rstrip()函数的代码,但没有发现任何有用的东西,但这可能是因为我没有经常深入研究源代码。而且,据我所知,我已经能够在python 3.x和2.x中重新创建它,因为它不是特定于版本的。我认为您认为.strip()所做的事情与它实际做的有所不同
.strip()和.rstrip()删除您提供的iterable上的所有字符。这意味着:
k = '9\t10\t123514\t12\t13\t14\t'
print(k.rstrip('12\t13\t14\t'))
将只留下“onds”,因为剥离将剥离以下内容:“,”a“,”l“,”m“,”y“和!不是“我的一切”如您所料
至于解决方案,您可以使用正则表达式。我认为您认为.strip()所做的事情与它实际做的有所不同
.strip()和.rstrip()删除您提供的iterable上的所有字符。这意味着:
k = '9\t10\t123514\t12\t13\t14\t'
print(k.rstrip('12\t13\t14\t'))
将只留下“onds”,因为剥离将剥离以下内容:“,”a“,”l“,”m“,”y“和!不是“我的一切”如您所料
至于解决方案,您可以使用正则表达式。这是因为Python中的
strip
函数尝试剥离传递到函数中的每个“字符”
例如:
"all my allmonds".strip("my all")
例如:
我认为您需要的是
removesuffix
,它在Python 3.9或更高版本上可用:)
有关removesuffix
的详细信息,请参阅
但是如果您无法转到Python 3.9,那么可能会有所帮助:)这是因为Python中的
strip
函数尝试剥离传递到函数中的每个“字符”
例如:
"all my allmonds".strip("my all")
例如:
我认为您需要的是
removesuffix
,它在Python 3.9或更高版本上可用:)
有关removesuffix
的详细信息,请参阅
但如果您无法转到Python 3.9,则可能会有所帮助:)