介绍
本文描述了两种常见的方法,您可以使用Python来从字符串中删除字符:
- 方法
String replace()
- 方法
String translate()
若要了解如何在 Python 中从字符串中删除间隔,请参阅 Remove Spaces from a String in Python。
Python String 对象是不可变的,因此您无法更改其值. 任何操纵字符串值的方法都会返回一个新的字符串对象。
本教程中的示例使用命令行中的 Python 交互式控制台来演示删除字符的不同方法。
使用 replace()
方法从字符串中删除字符
使用 String replace() 方法将一个字符替换为新的字符,您可以将字符(字符)作为第一个参数和空串作为第二个参数来删除一个字符。
声明字符串变量:
1s = 'abc12321cba'
用空串代替字符:
1print(s.replace('a', ''))
产量是:
1[secondary_label Output]
2bc12321cb
输出显示,从字符串中删除了a
的两种发生。
使用 replace()
方法从字符串中删除 Newline 字符
声明一个字符串变量,用一些新线字符:
1s = 'ab\ncd\nef'
将新字符代替为空字符串:
1print(s.replace('\n', ''))
产量是:
1[secondary_label Output]
2abcdef
输出显示,两个新行字符(n
)都从字符串中删除。
从字符串中删除一个字符串使用 replace()
方法
代替() 方法将字符串作为参数,因此您也可以在字符串中替换一个单词。
声明字符串变量:
1s = 'Helloabc'
用一个空的字符串代替一个字符串:
1print(s.replace('Hello', ''))
产量是:
1[secondary_label Output]
2abc
输出显示Hello
字符串已从输入字符串中删除。
使用 replace()
方法删除特定次数的字符
您可以在 replace()
方法中传递第三个参数,以指定在停止之前要在字符串中执行的更换次数. 例如,如果您指定 2
作为第三个参数,那么只有给定的字符的前 2 个发生次数被取代。
声明字符串变量:
1s = 'abababab'
用新字符取代字符的前两次发生:
1print(s.replace('a', 'A', 2)) # perform replacement twice
产量是:
1[secondary_label Output]
2AbAbabab
输出显示a
字符的前两次发生被A
字符取代,因为更换只发生了两次,所以a
字符的其他发生仍然存在于字符串中。
使用 translate()
方法从字符串中删除字符
Python 字符串 translate()
方法使用给定的地图表或字典代替字符串中的每个字符。
声明一个字符串变量:
1s = 'abc12321cba'
获取一个字符的Unicode代码点值,并用None
取代它:
1print(s.translate({ord('b'): None}))
产量是:
1[secondary_label Output]
2ac12321ca
输出显示b
字符的两种发生都已从定义在自定义字典中的字符串中删除。
使用 translate()
方法从字符串中删除多个字符
以下示例使用一个自定义字典,名为{ord(i):None for i in 'abc'},该词典将给定的字符串中的所有发生a
,b
和c
代替为None
。
声明字符串变量:
1s = 'abc12321cba'
将所有字符abc
替换为none
:
1print(s.translate({ord(i): None for i in 'abc'}))
产量是:
1[secondary_label Output]
212321
输出显示a
、b
和c
的所有出现都已从定义在自定义字典中的字符串中删除。
使用 translate()
方法从字符串中删除新字符
您可以使用 translate()
方法替换字符串中的新行字符. 下面的示例使用一个自定义字典, {ord('\n'): None},该字符串中的
\n的所有出现都用
None' 取代。
声明字符串变量:
1s = 'ab\ncd\nef'
将所有\n
字符替换为None
:
1print(s.translate({ord('\n'): None}))
产量是:
1[secondary_label Output]
2abcdef
输出显示,新行字符\n
的所有出现都已从定义在自定义字典中的字符串中删除。
结论
在本教程中,您了解了一些方法,您可以用来从Python中的字符串中删除字符串。