Python 怎样将一个字符串中制定的第几个空格替换为逗号(不能全部替换)?

问题背景:

在做自然语言处理的小项目——拼写纠错,需要将一句英文中的单词序列抽出来,也就是去除里面的逗号和句号,但是这个序列处理完之后,需要还原回原来的句子,也就是把逗号和句号再加上去,求问这个怎样实现,用正则可以吗?

具体问题:

举例:英文句子:I live python, love you.
抽出单词序列的代码是这样写的:

line = 'I live python, love you.'
str = line.replace(', ', ' ')
words = [x for x in str.strip().strip('.').split(' ')

得到的序列为: I live python love you(列表形式)


然后经过拼写纠错处理:I love python love you


接下来就出现问题了!!!


我想把它再转换回之前的原句子,**怎样将‘,’和‘.’再填回去??**




因为一次只处理一个句子,所以添加句号的话放在最后就行了,但是逗号怎么添加??



我的想法:

我的想法在之前使用正则将逗号替换为空格的时候,**记录下来这个句子替换了几个逗号,怎么替换在了第几个空格处。在最后使用正则找到第几个空格,然后再将它替换为逗号,**这样可行吗?我的正则不太熟练,求高人指点一下???

3个回答

<- 完全按照你的要求,把单词和符号分开,words是单词列表,随便你修改,字数多少都可以。符号可以是任意标点。修改好合并插入。问题解决的话,点这里的采纳

import re
s = "The hunt for the puma began in a small village where a woman picking blackberries saw 'a large cat' only five yards away from her. It immediately ran away when she saw it, and experts confirmed that a puma will not attack a human being unless it is cornered. The search proved difficult, for the puma was often observed at one place in the morning and at another place twenty miles away in the evening. Wherever it went, it left behind it a trail of dead deer and small animals like rabbits. Paw prints were seen in a number of places and puma fur was found clinging to bushes. Several people complained of \"cat-like noises\" at night and a businessman on a fishing trip saw the puma up a tree. The experts were now fully convinced that the animal was a puma, but where had it come from? As no pumas had been reported missing from any zoo in the country, this one must have been in the possession of a private collector and somehow managed to escape. The hunt went on for several weeks, but the puma was not caught. It is disturbing to think that a dangerous wild animal is still at large in the quiet countryside."
symb = re.split(r'[a-zA-Z]+', s)
words = re.split(r'[^a-zA-Z]+', s)
words[2] = "changed" #在这里修改
result = "".join(list(map(lambda x: x[0] + x[1], zip(symb, words))))
print(result)

运行结果
The hunt changed the puma began in a small village where a woman picking blackberries saw 'a large cat' only five yards away from her. It immediately ran away when she saw it, and experts confirmed that a puma will not attack a human being unless it is cornered. The search proved difficult, for the puma was often observed at one place in the morning and at another place twenty miles away in the evening. Wherever it went, it left behind it a trail of dead deer and small animals like rabbits. Paw prints were seen in a number of places and puma fur was found clinging to bushes. Several people complained of "cat-like noises" at night and a businessman on a fishing trip saw the puma up a tree. The experts were now fully convinced that the animal was a puma, but where had it come from? As no pumas had been reported missing from any zoo in the country, this one must have been in the possession of a private collector and somehow managed to escape. The hunt went on for several weeks, but the puma was not caught. It is disturbing to think that a dangerous wild animal is still at large in the quiet countryside.

可以看到,第三个单词for替换为changed,标点符号没有变化

weixin_41900122
爱编程的早起虫 我擦,大佬我又看到你了!!!
10 个月之前 回复

如下:
line = 'I live python, love you.'
line=line.replace(',',' , ') #在逗号两边加空格
line=line.replace('.',' .') #在句号前边加空格
words=line.split()
对单词进行修正
res=" ".join(words)
res=res.replace(' , ',',') #将逗号两边的空格删除
res=res.replace(' .','.') #将句号前边的空格删除
res就是所要的结果

记录逗号的位置

line = 'I live python, love you.'
list_str = line.split(" ")

index_comma = []
for i,str in enumerate(list_str):
    for char in str:
        if ','==char:
            index_comma.append(i)
            break

填回逗号

new_line = "I love python love you"
list_new_str = new_line.split(" ")

for i in index_comma:
    list_new_str[i] += ','
list_new_str[-1] += '.'
new_line = " ".join(list_new_str)
print(new_line)
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python如何判断一个字符串是否一个字典中存在的英文单词?

Python如何判断一个字符串是否一个字典中存在的英文单词?(这个字典指的是牛津字典那种英文字典) 就是处理文本时要过滤垃圾数据,只保留有意义的单词,过滤掉无意义的字符串。 初始 ``` list = ['recommend', 'muuj', 'survey', 'wtsbw'] ``` 过滤后 ``` list = ['recommend', 'survey'] ``` 求教!

用python正则表达式替换字符串问题

我用python写一个计算器,想用正则表达式将字符串中的一些内容替换,举个例子字符串如下 1+2*3-(5/6)+sin(45)-ln(100) 如何将用正则表达式先找到其中有sin()的内容,然后将sin(45)这个子串提取出来算出其值,然后用值去替换字符串中sin(45)

Python 中如何将一个字符串以特定字符分割存入到列表中

"150526087:o7nL74Ikiy4" 将上面的字符串输出成 【‘150526087’,‘o7nL74Ikiy4’】

请问python如何判断字符串中第n项的字符?

比如得到随机字符串后,我想判断第二个字符是不是"B",第三个字符是不是"C"。

Python:字符串中数字求和

1.输入一个字符串,取出这个字符串中所有的数字并求和。每个数字都是*独立的,*不连续。 现在只知道如何提取字符串中的数字 例:s=‘Abc34g8’ for I in s: I.isdigit() 或者 for I in s if I in [1,2,3,4,5,6,7,8,9] 但是如何让提取出来的数字按照要求相加呢? 按照这种方法结果应是:15 2.输入一个字符串,取出这个字符串中所有的数字并求和。其中相邻的数字是*连续*的的。 按照这种方法结果应是:42 问如何求和?

用Python替换文件中的字符,寻找更简单的方法

大神们好,本小白最近在处理某些科研相关的数据的时候遇到些问题,用Python可以解决但是感觉做法很麻烦,请教下有没有更简单的方法? 需要处理的文件是这种结构: 16000 timestep:1000 1 1 num1 num2 num3 2 1 num4 num5 num6 3 1 num7 num8 num9 4 2 num10 num11 num12 …… 其结构为:第一、二行是两个标识,不用管。 第3-16002行是16000行数据,(其实不止16002行但是只需要前16000行数据) 每行5个,分别是序号, **随机的1or2**, 3个浮点数。 现在需要将其中那个 **随机的1or2** 替换掉,如果原本是1,替换为Fe;如果原本是2,替换为Cr。其他内容不变。 于是用了很麻烦的方法解决了问题: #!/usr/bin/python import os file=open("c.out",'r+') lines=file.readlines() file2=open('d.out','w+') file2.write("16000\n") file2.write("timestep:1000\n") for line in lines[2:16003]: f=line.split(' ') if f[1]=="1": f[1]='Fe' elif f[1]=="2": f[2]='Cr' else: pass str=' '.join(f) file2.write(str) file2.close() os.rename('d.out','c.out') 大致思路是:读取待修改文件c.out的每一行,拆成列表,用列表的第二个元素f[1]做判断并赋值,将列表重新组合成字符串,写进文件d.out中,最后将d.out重命名(替换)为c.out。 感觉这个方法太麻烦了!有没有什么更简单的方法可以解决这个问题呢?不要跟我说用sed。

如何用python语言比较两个中文字符串是否相等

<p><span>如何用python语言比较两个中文字符串是否相等,</span></p> <p><span>前提是这两个中文字符串的编码格式未知。</span></p>

请问如何对大量的字符串进行快速替换

有一个txt文件,5m左右,需要对里面的所有标点都进行替换成一个空格,用replace和正则表达式速度太慢了,有没有一种方法使字符进行快速替换。 文本下载地址http://d.namipan.com/d/t.txt/254ea08f14240cf7c862774f31e89b52f91b2b05c6a34f00

python 用正则怎么提取到最后一个指定字符后的字符串

a = "Server.ServerCapabilities.aaaaa" b = "Server.ServerCapabilities.zzzzz.bbbbb" c = "Server.ServerCapabilities.rrrrrrr.ssssssss.cccccc" 我怎样才能取到每个字符串最后一个 . 后的字符串 例如: a 我取到"aaaaa" b 我取到"bbbbb" c 我取到"cccccc" 怎么用python的re模块里的findall来拿到它?? 望大佬们帮助一下小弟

python3中 input默认为字符串问题

在python3中input默认为字符串,为什么在input里加了一个字符串就可以判断了? varA=input('varA') varB=input('varB') if varA==str or varB==str: print("string involved") elif varA>varB: print("bigger") elif varA==varB: print("equal") else: print("smaller")

Python如何迭代字符串

求一个字符串集的所有子串,如‘abcd’,结果得‘a’、‘b’、‘c’、‘d’、‘ab’、‘abc’、‘abcd’、‘bc’、‘bcd’、‘cd’。现有思路对每个字符串循环遍历,控制长度判重后存储到列表中,但如果字符串过长,数目过多循环次数多,程序运行不了。麻烦各位大能门给点建议,谢谢。

在 Python 中将整数转换为字符串?

<div class="post-text" itemprop="text"> <p>I want to convert an integer to a string in Python. I am typecasting it in vain:</p> <pre><code>d = 15 d.str() </code></pre> <p>When I try to convert it to string, it's showing an error like <code>int</code> doesn't have any attribute called <code>str</code>.</p> </div> <p>转载于:https://stackoverflow.com/questions/961632/converting-integer-to-string-in-python</p>

python我换一种问法,如何把一个字符列表中的str中,把空格前的字符数字分开,变成两列表?

如何把一个字符列表像这个的 [['0 1'], ['0 2'], ['0 3'], ['0 4'],['4 7'], ['4 8'],['100,112'],['112,114']],把空格前的字符数字分开,变成两个列表 如[0,0,0,0,,4,4,100,112]和[1,2,3,4,7,8,112,114]

python 字符串数组问题

for i in range(sum): res_tem1 = res_tem1.find_next('td') <-如果在循环内用字符串数组储存每次的res_tem1值?(res_tem1为字符串)

请问如何用python把两个字符串交换部分字节?

两个八位字符串,前三位和后五位互换或者前两位和后六位互换得到两个新的字符串。

python 字符串拆分处理

假设有一个字符串如下“a:50 xxx b:100,xxxc:500”, 其中xxx代表任意字符,如何把abc的值提取出来,并生成一个矩阵来存储他

Python中字符串默认的单引号如何转换为双引号

Python新人,在做一个小软件,用到了pdfminer这个包,我在Python文件中用到os.system()函数: ``` os.system('pdf2txt.py -o "E:\PDF\output.txt" "E:\PDF\A Functional Genetic Approach Identifies the PI3K Pathway as a Major Determinant of Trastuzumab Resistance in Breast Cancer.pdf"') ``` "E:\PDF\A Functional Genetic Approach Identifies the PI3K Pathway as a Major Determinant of Trastuzumab Resistance in Breast Cancer.pdf"这个路径要用双引号表示,现在我想定义一个变量strSource,令strSource ="E:\PDF\A Functional Genetic Approach Identifies the PI3K Pathway as a Major Determinant of Trastuzumab Resistance in Breast Cancer.pdf",再代入os.system()中,结果strSource中的字符串的引号变成单引号了,导致无法生成output.txt,不知道谁知道怎样把Python中字符串默认的单引号转换为双引号。

python中列表字符串的操作

li是一个大列表 li=[['2324667 7326496\n'], [], ...........]共100个小列表构成, 如果想把每个小列表中的\n去掉,该怎么写?

关于python中的一个字符

求教,前几日在一些资料上看到python中半角的点,也就是键盘左上角那个键,`,有一定意义,只不过代码可读性不高,不怎么使用,求大神告诉是什么意思。

学Python后到底能干什么?网友:我太难了

感觉全世界营销文都在推Python,但是找不到工作的话,又有哪个机构会站出来给我推荐工作? 笔者冷静分析多方数据,想跟大家说:关于超越老牌霸主Java,过去几年间Python一直都被寄予厚望。但是事实是虽然上升趋势,但是国内环境下,一时间是无法马上就超越Java的,也可以换句话说:超越Java只是时间问题罢。 太嚣张了会Python的人!找工作拿高薪这么简单? https://edu....

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

为什么程序猿都不愿意去外包?

分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助

Java校招入职华为,半年后我跑路了

何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

@程序员:GitHub这个项目快薅羊毛

今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事。 后来上百度搜索了一下,原来真有这回事,毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息。 这到底是啥情况? 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送 4,246.99 HNS币,大约价...

用python打开电脑摄像头,并把图像传回qq邮箱【Pyinstaller打包】

前言: 如何悄悄的打开朋友的摄像头,看看她最近过的怎么样,嘿嘿!这次让我带你们来实现这个功能。 注: 这个程序仅限在朋友之间开玩笑,别去搞什么违法的事情哦。 代码 发送邮件 使用python内置的email模块即可完成。导入相应的代码封装为一个send函数,顺便导入需要导入的包 注: 下面的代码有三处要修改的地方,两处写的qq邮箱地址,还有一处写的qq邮箱授权码,不知道qq邮箱授权码的可以去百度一...

C++(继承):19---虚基类与虚继承(virtual)

一、菱形继承 在介绍虚继承之前介绍一下菱形继承 概念:A作为基类,B和C都继承与A。最后一个类D又继承于B和C,这样形式的继承称为菱形继承 菱形继承的缺点: 数据冗余:在D中会保存两份A的内容 访问不明确(二义性):因为D不知道是以B为中介去访问A还是以C为中介去访问A,因此在访问某些成员的时候会发生二义性 缺点的解决: 数据冗余:通过下面“虚继承”技术来解决(见下) 访问...

计算机网络——浅析网络层

一、前言 注意,关于ipv4和ipv6,ipv4是ip协议第4版本,也表示这个版本的ip一共4个字节,同样地,ipv6是ip协议第6版本,也表示这个版本的ip一共6个字节。 关于网络层使用路由器实现互联:在计算机网络的分层结构中,不同层有不同的中继设备: 计算机网络层 中继设备/中继系统 物理层 中继器、集线器Hub 数据链路层 网桥或交换机(交换机是多端口网桥,两者本质上是一个东西) 网络层 路...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

女朋友过生日,我花了20分钟给她写了一个代理服务器

女朋友说:“看你最近挺辛苦的,我送你一个礼物吧。你看看想要什么,我来准备。” 我想了半天,从书到鞋子到电子产品最后到生活用品,感觉自己什么都不缺,然后和她说:“你省省钱吧,我什么都不需要。” 她坚持要送:“不行,你一定要说一个礼物,我想送你东西了。” 于是,我认真了起来,拿起手机,上淘宝逛了几分钟,但还是没能想出来缺点什么,最后实在没办法了:“这样吧,如果你实在想送东西,那你就写一个代理服务器吧”...

记一次腾讯面试,我挂在了最熟悉不过的队列上……

腾讯后台面试,面试官问:如何自己实现队列?

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

立即提问
相关内容推荐