python-3.x - Python strip() 删除多余的(不需要的)字符
问题描述
在我的一个项目中,我对以下情况感到震惊:
word = 'mixed4d_pre_relu'
word.strip('_pre_relu')
Out[5]: 'mixed4d'
这里的输出和预期的一样。
但是,当我执行以下操作时:
word = 'mixed4e_pre_relu'
word.strip('_pre_relu')
Out[5]: 'mixed4' # No 'e' here, yyy?
如您所见,这真的很奇怪。
有谁知道这种奇怪行为的原因是什么?
编辑:感谢您的简短说明。我不知道为什么我假设strip()
它是一个具体的字符串移除。
解决方案
根据评论,.strip()
获取一个字符列表并删除所有这些字符 - 而不是特别要删除的字符串。它将在字符串的末尾这样做,向内移动,直到找到不属于该字符集的内容,此时它将停止。
可以做你想做的事情(至少在这种情况下)的替代方法是正则表达式替换:
>>> import re
>>> re.sub(r'_pre_relu$', '', word)
'mixed4d'
这只是在字符串的最后查找文本_pre_relu
,因此用作rstrip()
. 等效的lstrip()
替换是r'^_pre_relu'
,它会删除字符串开头的文本。
推荐阅读
- python-3.x - 如何将对象的类型从“pandas.core.groupby.generic.SeriesGroupBy”转换为“pandas.core.series.Series”?
- gitlab-api - Gitlab API。如何在笔记中获取表情符号?
- salesforce - 在 Salesforce 中的何处存储授权持有者令牌?
- python - itertools.combinations 的 numba 安全版本?
- python - 在构建期间将文件复制到 Docker 容器,但进程声称未找到文件
- java - 无法加载 Glass 工厂类 - Windows 上的 OpenJDK OpenJFX
- kubernetes - 如何通过节点 B 路由所有节点 A 流量
- pagination - 如何处理基于光标的分页中先前元素的删除?
- python - 在嵌套列表中查找元素索引
- c# - 如何将游戏对象移动到具有特定标签的随机对象