Python 如何在不使用replace()函数的情况下将字符串中的子字符串转换为大写?
我有: 我需要检查Python 如何在不使用replace()函数的情况下将字符串中的子字符串转换为大写?,python,python-3.x,Python,Python 3.x,我有: 我需要检查sub是否在s1中,如果是,我需要将sub转换为字符串中的大写字母 例如: def my_replace(s1,sub): # ? def my_replace(s1,sub): return s1.replace(sub, sub.upper()) 印刷品: s1 = "mouse is useful thing" sub = "use" 这样做: moUSE is USEful thing 你可以用。见下文: s
sub
是否在s1
中,如果是,我需要将sub转换为字符串中的大写字母
例如:
def my_replace(s1,sub):
# ?
def my_replace(s1,sub):
return s1.replace(sub, sub.upper())
印刷品:
s1 = "mouse is useful thing"
sub = "use"
这样做:
moUSE is USEful thing
你可以用。见下文:
s.replace(input_string, input_string.upper())
例如:
def my_replace(s1,sub):
# ?
def my_replace(s1,sub):
return s1.replace(sub, sub.upper())
输出将是:
s1 = "mouse is useful thing"
sub = "use"
通过string.replace函数可以实现这一点 其使用示例如下:
>>> my_replace(s1,sub)
'moUSE is USEful thing'
您可以结合使用
split()
和join()
函数
def my_更换(s1,sub):
温度=s1.分体式(分体式)
s1=副上部()连接(临时)
返回s1
打印(my_replace('鼠标是有用的东西','use'))
输出:鼠标是有用的东西因为您指定不能使用
str.replace()
,如果没有该方法,此解决方案将适用于您:
def my_更换(s1,sub):
临时=列表(s1)
对于idx,枚举中的e(s1):
如果e==sub[0]和s1[idx:idx+len(sub)]==sub:
温度[idx:idx+len(sub)]=sub.upper()
返回“”加入(临时)
此函数首先从字符串s1
创建临时列表temp
。这样我们就可以轻松地更改列表的值(str
是不可变的,list
不是)。然后我们可以并行地遍历s1
的索引(idx
)和元素(e
)。当迭代到达sub
的第一个字母时,它考虑接下来的n个元素,其中n是sub
的长度。如果子字符串等于sub
,则会将列表中与该子字符串匹配的元素更改为该元素的大写。在函数末尾,它使用list.join()
返回一个已联接的temp
。你的结果如下:
res=my_replace(s1,sub)
“鼠标是有用的东西”
我在没有替换的情况下尝试过,结果与它旁边的一位朋友非常相似=)
在回答了
replace
之后,您将问题的描述更改为不使用replace函数,然后您对使用replace
的问题进行了否决?如果你有要求,请在答案上发表评论,不要投反对票。它奏效了,谢谢。是的,我知道,它奏效了,但我不想使用replace()函数,但谢谢,我解决了它,实际上我是begginer,不知道你写的一些算法。谢谢你的帮助