Python实现字符串中某个字母的替代功能

yipeiwu_com6年前Python基础

今晚想实现这样一个功能:将输入字符串中的字母 “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实现字符串中某个字母的替代功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

对python自动生成接口测试的示例讲解

在python中Template可以将字符串的格式固定下来,重复利用。 同一套测试框架为了可以复用,所以我们可以将用例部分做参数化,然后运用到各个项目中。 代码如下: coding=...

Python使用ffmpy将amr格式的音频转化为mp3格式的例子

最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端。经过一番研究,最终决定采用Python的ffmpy包。 首先是ffm...

Python2.x中str与unicode相关问题的解决方法

Python2.x中str与unicode相关问题的解决方法

python2.x中处理中文,是一件头疼的事情。网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章。 我也会在以后学习中,不断的修改此篇博客。 这里假设读者已...

python3实现在二叉树中找出和为某一值的所有路径(推荐)

python3实现在二叉树中找出和为某一值的所有路径(推荐)

请写一个程序创建一棵二叉树,并按照一定规则,输出二叉树根节点到叶子节点的路径。 规则如下: 1、从最顶端的根结点,到最下面的叶子节点,计算路径通过的所有节点的和,如果与设置的某一值的相同...

Python中获取网页状态码的两个方法

第一种是用urllib模块,下面是例示代码: 复制代码 代码如下: import urllib status=urllib.urlopen("//www.jb51.net").code...