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单向链表的实现

链表由一系列不必在内存中相连的结构构成,这些对象按线性顺序排序。每个结构含有表元素和指向后继元素的指针。最后一个单元的指针指向NULL。为了方便链表的删除与插入操作,可以为链表添加一个表...

Python数据处理篇之Sympy系列(五)---解方程

Python数据处理篇之Sympy系列(五)---解方程

前言 sympy不仅在符号运算方面强大,在解方程方面也是很强大。 本章节学习对应官网的:Solvers 官方教程 https://docs.sympy.org/latest/tutor...

Python使用crontab模块设置和清除定时任务操作详解

Python使用crontab模块设置和清除定时任务操作详解

本文实例讲述了Python使用crontab模块设置和清除定时任务操作。分享给大家供大家参考,具体如下: centos7下安装Python的pip root用户使用yum install...

Python操作Oracle数据库的简单方法和封装类实例

本文实例讲述了Python操作Oracle数据库的简单方法和封装类。分享给大家供大家参考,具体如下: 最近工作有接触到Oracle,发现很多地方用Python脚本去做的话,应该会方便很多...

Python之os操作方法(详解)

1. os.path.driname(path):返回路径的上一级路径字符串。   >>> os.path.dirname('D:\Games')   'D:\\'...