今晚想实现这样一个功能:将输入字符串中的字母 “i” 变成字母 “p”。当时想的很简单,直接用for循环遍历,然后替代,出问题的代码如下:

name = input('随便输入一堆字符吧...')
#name = list(name)
name = "".join(name)
j = 0
for i in range(len(name)):
 if name[i] == 'i':
  name[i] = 'p'
  j = j + 1
 i = i + 1

print("".join(name))
if j == 0:
 print('字符串里没有字母i ......')

当时笔者想的是挺好,for循环遍历,然后替代,顺便再把字符 “i” 出现的次数用变量 j 表示出来,结果呢,一执行就出现了这样一个错误:

Traceback (most recent call last):
 File "<ipython-input-4-0705a4a9133b>", line 6, in <module>
  name[i] = 'p'
TypeError: 'str' object does not support item assignment

为什么呢,我 百度了一下,是因为这个:

输入的name,是字符串,用type函数验证后,显示的确是str类型。笔者也意识到了这个问题,想用 name = “”.join(name) 来改变数据类型,但我没有想到的是,刚才提到的 name = “”.join(name) 这一行,**

是将list转变成字符串str的!!!

**
too young too simple, sometimes too naive。。。。

因此,真正需要解决这个问题,需要把str字符串类型转变成list列表类型,就是需要list函数。 即:

用name = list(name) 代替 name = “”.join(name)

于是乎,问题解决,KO!

学到了,字符串不能用for循环的方式直接遍历替代,如果想进行字符元素的替换,需要用 list() 函数进行转换,变成 list 类型

总结

以上所述是小编给大家介绍的Python实现字符串中某个字母的替代功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!