python - 在 Python 中从字符串中删除子字符串
问题描述
我想编写一个接受 2 个输入的函数:一个字符串和一个子字符串,然后该函数将从字符串中删除该部分子字符串。
def remove_substring(s, substr):
"""(str, str) -> NoneType
Returns string without string substr
remove_substring_from_string("Im in cs", "cs")
Im in
"""
other_s = ''
for substr in s:
if substr in s:
continue
我如何从这里继续?假设我的逻辑是合理的。
解决方案
避免使用 Python 函数。
方法一
def remove_substring_from_string(s, substr):
'''
find start index in s of substring
remove it by skipping over it
'''
i = 0
while i < len(s) - len(substr) + 1:
# Check if substring starts at i
if s[i:i+len(substr)] == substr:
break
i += 1
else:
# break not hit, so substr not found
return s
# break hit
return s[:i] + s[i+len(substr):]
方法二
如果可以使用 range 函数,上面可以更简洁的写成如下。
def remove_substring_from_string(s, substr):
'''
find start index in s of substring
remove it by skipping over it
'''
for i in range(len(s) - len(substr) + 1):
if s[i:i+len(substr)] == substr:
break
else:
# break not hit, so substr not found
return s
return s[:i] + s[i+len(substr):]
测试
print(remove_substring_from_string("I have nothing to declare except my genuis", " except my genuis"))
# Output: I have nothing to declare'
推荐阅读
- python - PyQt5 - 尝试使用 macOS 关闭 ui 时陷入循环
- python - 时间增量数据上的 Python 转换(“总和”)
- performance - 几何着色器和 SSBO 性能中的顶点索引
- php - 如何从 wordpress php 发送电子邮件?
- firebase - 如何防止 Flutter 应用路由到错误的页面?
- java - 使用 JPA 查找嵌套实体
- python - 使每一行长度相同,并用“”填充缺失的数据
- dataset - 使用 SYNTHIA 数据集进行实例分割
- python - 有什么方法可以在 Python 中标记变量?
- regex - 带有可选组的正则表达式不起作用 - 括号中的 \d 不起作用 (\d*%)