Python从字符串中删除字符

时间:2020-02-23 14:43:14  来源:igfitidea点击:

有时我们想从字符串中删除所有出现的字符。
有两种常见的方法可以实现此目的。

Python从字符串中删除字符

  • 使用字符串replace()函数
  • 使用字符串translate()函数

Python使用replace()从字符串中删除字符

我们可以使用字符串replace()函数将一个字符替换为一个新字符。
如果我们提供一个空字符串作为第二个参数,则该字符将从字符串中删除。

请注意,该字符串在Python中是不可变的,因此此函数将返回一个新字符串,而原始字符串将保持不变。

s = 'abc12321cba'

print(s.replace('a', ''))

输出:bc12321cb

Python使用translate()从字符串中删除字符

Python字符串translation()函数使用给定的转换表替换字符串中的每个字符。
我们必须为该字符指定Unicode代码点,并指定"无"作为替换字符,以将其从结果字符串中删除。
我们可以使用ord()函数获取字符的Unicode代码点。

s = 'abc12321cba'

print(s.translate({ord('a'): None}))

输出:bc12321cb

如果要替换多个字符,可以使用迭代器轻松完成。
让我们看看如何从字符串中删除字符" a"," b"和" c"。

s = 'abc12321cba'

print(s.translate({ord(i): None for i in 'abc'}))

输出:12321

从字符串中删除空格

s = ' 1 2 3 4 '
print(s.replace(' ', ''))  # 1234
print(s.translate({ord(i): None for i in ' '}))  # 1234

Python从字符串中删除换行符

s = 'ab\ncd\nef'
print(s.replace('\n', ''))
print(s.translate({ord('\n'): None}))

从字符串中删除子字符串

字符串replace()函数参数是字符串。
让我们看看如何从字符串中删除单词。

s = 'ab12abc34ba'
print(s.replace('ab', ''))

输出:12c34ba

删除指定的次数

我们还可以在replace()函数中传递第三个参数,以指定应该执行替换的次数。

s = 'abababab'
print(s.replace('a', 'A', 2))

输出:AbAbabab