我想更改 phyton 中变量中的 2 个字符,但是当我修复其中一个字符时,另一个字符会再次更改。
我有这个变量。
name= " rIana Danyela RodrYguez "
我不想碰名称“Danyela” || |如果我想用“Y”替换“rIana”中的“I”,用“i”替换“RodrYguez”中的“Y”,我做了这一行。
删除空格
.print(nombre.strip()
降低所有字母。
.lower()
大写每个单词的第一个字母。
.title()
然后 riana 给了我“ryana”
但是,当我尝试用
.replace ("i","y",))
替换 rodyguez 中的“y”时,我得到了 rodriguez,但“ryana”变成了“riana”再次。当我尝试修复它时,我遇到了一个循环。
我发现我可以尝试先用
.replace ("y","i",)
更改“RodrYguez”,然后我得到了我的解决方案,但我想一次性替换这个字符单词。
I found that i can try to change "RodrYguez" first with
print(nombre.strip().replace("Y", "i").lower().title().replace ("i","y", 1,))
then I got my solution but I want to replace this caracters words in 1 move.
可以这样做,无需循环替换即可实现你想要的效果:
name = " rIana Danyela RodrYguez "
# 分割成名字的各个部分
parts = name.strip().split()
# 对第一个和最后一个词进行替换
parts[0] = parts[0].replace("I", "y").capitalize()
parts[-1] = parts[-1].replace("Y", "i").capitalize()
# 合并成最终结果
new_name = " ".join(parts)
print(new_name) # 输出: Ryana Danyela Rodriquez
代码解释:
-
name.strip().split()
: 首先去除字符串两端的空格,然后按照空格分割成列表,每个元素分别对应名字的一部分。 -
parts[0] = ...
和parts[-1] = ...
: 分别对列表的第一个元素(名)和最后一个元素(姓)进行操作。-
使用
.replace("I", "y")
将 "I" 替换为 "y"; -
使用
.replace("Y", "i")
将 "Y" 替换为 "i"; -
使用
.capitalize()
将单词首字母大写。
-
使用
-
" ".join(parts)
: 使用空格将列表中的各个部分重新拼接成一个字符串。
这样,就能一次性完成对名字中特定字符的替换,而不会影响其他部分。
标签:python,string,variables,methods From: 78790532