python字符串替换源码_Python实现字符串中某个字母的替代功能

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 "", line 6, in

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实现字符串中某个字母的替代功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

时间: 2019-10-20

本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串 然后把它替换成自己想要的字符串的方法 re.sub 函数进行以正则表达式为基础的替换工作 下面是一段示例源码 #!/usr/bin/env python #encoding: utf-8 import re url = 'https://113.215.20.136:9011/113.215.6.77/c3

Python正则表达式在使用中会经常应用到字符串替换的代码.有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获. 1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串 result, number = re.subn(regex, newstring, subject) 2.替换所有匹配的子串(使 用正则表达式对象) rereobj = re.compile(regex) result, number = re

第一种方法 import sys import unicodedata s = "Lǐ Zhōu Wú" remap = { # ord返回ascii值 ord('\t'): '', ord('\f'): '', ord('\r'): None } # 去除\t, \f, \r a = s.translate(remap) ''' 通过使用dict.fromkeys() 方法构造一个字典,每个Unicode 和音符作为键,对于的值全部为None 然后使用unicodedata.norm

本文实例讲述了Python字符串拼接.截取及替换方法.分享给大家供大家参考,具体如下: python字符串连接 python字符串连接有几种方法,我开始用的第一个方法效率是最低的,后来看了书以后就用了后面的2种效率高的方法,跟大家分享一下. 先介绍下效率比较低的方法: a = ['a','b','c','d'] content = '' for i in a: content = content + i print content content的结果是:'abcd' 后来我看了书以后,发现书上

php5.2升级到5.3后,原& new的写法已经被放弃了,可以直接new了,面对上百个php文件,手动修改简直是想要命,所以写了个脚本,分分钟搞定. 复制代码 代码如下: #-*- coding:utf-8 -*- #!/usr/bin/python import os #定义程序根目录rootpath='D:\\wamp\\www\\erp\\app' def m_replace(path): for item in os.listdir(path):  nowpath=os.path.jo

去空格及特殊符号 s.strip().lstrip().rstrip(',') Python strip() 方法用于移除字符串头尾指定的字符(默认为空格). 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr2 连接字符串 #strcat(sStr1,sStr2) sStr1 = 'strcat' sStr2 = 'append' sStr1 += sStr2 print

python 字符串替换 是python 操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法. python 字符串替换可以用2种方法实现: 1是用字符串本身的方法. 2用正则来替换字符串 下面用个例子来实验下: a = 'hello word' 把a字符串里的word替换为python 1.用字符串本身的replace方法 复制代码 代码如下: a.replace('word','python') 输出的结果是hello python 2.用正则表达式来完成替换: 复制代码 代码如

个人想到的解决方法有两种,一种是  .replace(' old ',' new ')   第一个参数是需要换掉的内容比如空格,第二个是替换成的内容,可以把字符串中的空格全部替换掉. 第二种方法是像这样 str_1_data = ' a b c ' str_2_list = str_1_data.split() str_1 = '' for i in range(len(str_2_list)): #这里可以直接用 str_1.join(str2_list) str_1 += str_2_lis

本文实例讲述了python去除文件中空格.Tab及回车的方法.分享给大家供大家参考,具体如下: 在最近的开发工作中,为了应付比赛赶进度,服务端的json文件都是人工写的,写完之后发现格式都是十分规整,易于人阅读的json,但是客户端请求不需要那些为了格式而在json里面添加的空格.tab.回车等等没用的字符,遂用python写一脚本,去除文件中的空格.回车.换行. 原json文件: { "amount" : "2", "content" : [

jquery $.trim()去除字符串空格的实现方法[附图例] 语法 jQuery.trim()函数用于去除字符串两端的空白字符. 作用 该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止).它会清除包括换行符.空格.制表符等常见的空白字符. 参数 如果参数str不是字符串类型,该函数将自动将其转为字符串(一般调用其toString()方法).如果参数str为null或undefined,则返回空字符串(""). 返回值 jQuery.trim()函数的返回

首先,我们来随便写一个带空格的列表: list1 = ['122','2333','3444',' ','422',' ',' ','54',' '] 相信已经有人尝试过,诸如以下的方式去删掉空格,例如: # -*- coding:utf-8 -*- for i in list1: if i == ' ': list1.remove(' ') print list1 但是结果你会发现是这样的,它总是不能完全的删完空格,会在末尾留下一个. 方法一: 这个时候,可以尝试把'=='改为in: # -*

本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安装PyCrypto,可以用AES和DES.我使用DES加解密.加密后将密文转为16进制,在入库.测试代码如下. ; html-script: false ]#!/bin/python #-*- coding:utf-8 -*- # Filename: # Revision: # Date: 2013

在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符. 因此改变一个字符串的元素需要新建一个新的字符串. 常见的修改方法有以下4种. 方法1:将字符串转换成列表后修改值,然后用join组成新字符串 >>> s='abcdef' #原字符串 >>> s1=list(s) #将字符串转换为列表 >>> s1 ['a', 'b', 'c', 'd', 'e', 'f'] #列表的每一个元素为一个字符 >>> s1[4]='

本文实例讲述了Python去除列表中重复元素的方法.分享给大家供大家参考.具体如下: 比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还有一种据说速度更快的,没测试过两者的速度差别 l1 = ['b','c','d','b','c','a','a'] l2 = {}.fromkeys(l1).keys() print l2 这两种都有个缺点,祛除重复元素后排序变了: ['a', 'c',

本文实例讲述了python写入中英文字符串到文件的方法.分享给大家供大家参考.具体分析如下: python中如果使用系统默认的open方法打开的文件只能写入ascii吗,如果要写入中文需要用到codecs模块,下面的代码向 c:/1.txt文件写入 "你好,我们 jb51.net"中文字符串 # -*- coding: utf-8 -*- import codecs content = u'你好,我们 jb51.net' f = codecs.open('c:/1.txt','w','

今天在下脚本的时候遇到一个问题,比如有这样的一个字符串 t = "book123456",想把尾部的数字全部去掉,只留下"book",自己用正则试了下,是实现了,但速度不是很快,于是问了一下同事,他给的解决的方法确实很简洁,也让自己长了知识点,如下: import string t.rstrip(string.digits) 这样就全部将数字移除了,顺便将string这个模块看了下文档,也有一定的收获. >>> import string >

你可能感兴趣的:(python字符串替换源码)