分析
在Python中,字符串是不可变的。所以无法直接删除字符串之间的特定字符。
所以想对字符串中字符进行操作的时候,需要将字符串转变为列表,列表是可变的,这样就可以实现对字符串中特定字符的操作。
1、删除特定字符
特定字符的删除,思路跟插入字符
类似。
可以分为两类,删除特定位置的字符
或者 删除指定字符
。
1.1、删除特定位置的字符
使用.pop()
方法。输入参数,即为要删除的索引。
string = '公众号:土堆碎念'
list_str = list(string)
list_str.pop(1)
list_str = ''.join(list_str)
print(list_str)
输出:
1.2、删除指定字符
删除指定字符与删除特定位置的区别是:删除指定字符,需要提供指定的字符,和需要删除的最大数目。而删除特定位置的字符,只需要提供删除字符的索引即可。
1.3、两种实现
删除的实现,除了像pop
方法那种,弹出特定字符的删除,也可以用空字符来替换特定的字符,来实现删除。
.replace()方法
replace(...) method of builtins.str instance
S.replace(old, new[, count]) -> str
比如,字符串a='公众号公众号:土堆碎念'
,尝试将其中的公
字符删除,将公
字符替换成空字符。
注意,它返回的是替换后(在这种情况下,是删除字符)的字符,没有改变原始字符串,也就是说,a还是原来那个a。所以如果想使用替换后的字符,需要指定一个变量进行赋值。
眼尖的你,发现还有一个可选参数,count
。
count
参数就可以指定要替换几个。我们无意中知道了如何删除指定数目的字符。
正则表达式
除了使用Python
标准库中的方法,还可以使用re
正则表达式库,来实现。
使用re.sub()
方法,这个方法的功能更强大,可以替换特定模式的字符。
因为模式匹配比较麻烦,所以比较强大。
sub(pattern, repl, string, count=0, flags=0)
pattern
代表指定的模式,这是强大的原因,如果简单点使用,只指定特定字符,就可以用'特定字符'
来表示模式。
repl
代表的是,需要替换成的字符,如果删除,就是替换成空字符。
string
代表的是,需要被替换的字符串。
count
是替换的次数。
总结
- 无论是Python字符串自带的
.replace()
方法,还是re
提供的.sub()
方法,都是不改变原来的字符串,返回值才是替换的字符串。所以,如果要使用替换的字符串,就需要将返回值赋值给一个变量。 - 这两种方法,默认都是替换所有的指定字符。
教程中的Costco,只给你各领域更好的教程,不再为挑选教程而闹心。
一定要关注哦,以后一秒找教程!!!
Python字符串中删除特定字符的更多相关文章
-
36.在字符串中删除特定的字符[Delete source from dest]
[题目] 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”. ...
-
处理python字符串中的中文字符
# -*- coding:utf-8 -*- import sys,os txta = open('a.txt','r') str = '' for line in txta: str += line ...
-
java 删除字符串中的特定字符
/** * Delete any character in a given String. * @param inString the original String * @param charsTo ...
-
poj3650---将一个字符串中的特定字符转换
#include <stdio.h> #include <stdlib.h> #include<string.h> int main() { ]; int i; w ...
-
python:字符串中提取特定的数据
在日志文件中有一大堆,格式相同的文本,需要提取出接口耗时的时间 >>> 运单号:71742507538566,快递100接口耗时:8,返回结果:[{"lengthPre&q ...
-
Python字符串中添加、插入特定字符
分析 我们将添加.插入.删除定义为: 添加: 在字符串的后面或者前面添加字符或者字符串 插入: 在字符串之间插入特定字符 在Python中,字符串是不可变的.所以无法直接删除.插入字符串之间的特定字符 ...
-
剑指Offer:从第一个字符串中删除第二个字符串中出现过的所有字符
// 从第一个字符串中删除第二个字符串中出现过的所有字符 #include <stdio.h> char* remove_second_from_first( char *first, c ...
-
jst通用删除数组中重复的值和删除字符串中重复的字符
以下内容属于个人原创,转载请注明出处,非常感谢! 删除数组中重复的值或者删除字符串重复的字符,是我们前端开发人员碰到很多这样的场景.还有求职者在被面试时也会碰到这样的问题!比如:问删除字符串重复的字符 ...
-
如何使用jQuery从字符串中删除最后一个字符
如何使用jQuery从字符串中删除最后一个字符 1.string.slice(0,-1) 2.str.substring(0,str.length-1)
随机推荐
-
oracle内存粒度
一,什么是内存粒度? When a database instance starts up, the amount of memory allocated is determined by the a ...
-
wcf 同时支持webhttp 和 引用方式
wcf 实现参考 http://www.cnblogs.com/mingmingruyuedlut/p/4223116.html 兼容两种方式 1.修改服务端webconfig <system. ...
-
C# DES加密解密用法
主要用到C#提供的以下三个类:MemoryStream 内存流DESCryptoServiceProvider 加密服务提供者类CryptoStream 讲数据流连接到加密转换的流 下面是简易代码,已 ...
-
利用VS自带的命令行工具查看和生产PublicKeyToken (转)
使用VS2013(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...
-
JDBC与反射
什么是JDBC Java定义了一套关于连接使用数据库的规范(接口)叫做JDBC,许多数据库厂商实现了这个规范,所以我们可以通过Java提供的接口编程,使得我们更换数据库的时候不用修改原来的代码,只需要 ...
-
201521123086《JAVA程序设计》第一周学习总结
本周学习总结 (1)初步了解java程序的运行环境,通过命令行语句编译简单的java程序 (2)使用notepad编写,cmd下进入文件夹编译程序 (3)学习使用各种快捷键补全代码 (4)能够区别jd ...
-
Ensemble Learning: Bootstrap aggregating (Bagging) &; Boosting &; Stacked generalization (Stacking)
Booststrap aggregating (有些地方译作:引导聚集),也就是通常为大家所熟知的bagging.在维基上被定义为一种提升机器学习算法稳定性和准确性的元算法,常用于统计分类和回归中. ...
-
spark运算结果写入hbase及优化
在Spark中利用map-reduce或者spark sql分析了数据之后,我们需要将结果写入外部文件系统. 本文,以向Hbase中写数据,为例,说一下,Spark怎么向Hbase中写数据. 首先,需 ...
-
adb shell 命令详解
adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面 ...
-
1019C	Sergey&#39;s problem(思维)
题意: 找出来一个点集S 使得S中的点不能互相通过一步到达 并且S中的点 可以在小于等于2的步数下到达所有的点 要父结点 不要子结点 这样就求出来一个点集S‘ 而S'中可能存在 v -> u ...