python - s.replace 字符串方法,循环遍历一个字符串
问题描述
我正在尝试编写一种方法,将第一个字母之后的每个字母替换为“*”而不是字母。示例:“babble”产生“ba**le”“that”产生“tha*”
我的代码在循环时似乎与替换函数有问题,我不太明白为什么。
def fix_start(s):
if len(s) < 2:
s = ""
else:
for i in s:
if i == s[0]:
if s[0]:
continue
s.replace(s[i], "*")
i += i
print(s)
解决方案
该str.replace
方法返回原始字符串的副本,其中给定子字符串的所有出现都替换为给定的新字符串,因此您可以简单地从第二个字符切分输入字符串并将第一个字符的所有出现替换为'*'
,并在原始字符串的第一个字符:
def fix_start(s):
return s[0] + s[1:].replace(s[0], '*')
这样fix_start('babble')
返回:'ba**le'
推荐阅读
- amazon-web-services - 如何在 AWS Forgot Password 场景中支持多语言电子邮件
- git - git reset 的 --hard、--merge 和 --keep 有什么区别?
- python - 在给定条件下向 pandas DataFrame 添加值
- scala - Spark MLlib:DecisionTree.trainClassifier 和 DecisionTree.train 之间的区别
- android - Google Play 应用内购买 - 服务器端验证
- python - 在运行我的 python 代码时,它给了我错误“ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:726)”
- javascript - 如何在表格的同一行上获取多个按钮?
- typescript - 在 TypeScript 中获取带有值字符串(反向映射)的枚举键
- highcharts - 使用 boost 在缩放范围内没有点时显示放大的系列线
- mysql - 使用带有 knex.js 的 leftjoin 仅将 where 条件应用于辅助表