python之string.maketrans和str.translate

本文介绍了Python中使用string模块进行字符串转换的方法,包括maketrans和translate函数的用法,以及如何创建转换表并利用该表来替换或删除指定字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例:

import string  
  
s = 'abcd--dcba'  
  
# 参数from和to的长度必须一致  
table = string.maketrans('', '')   # type(table) is 'str'
print(s.translate(table))   # 输出 abcd--dcba

table = string.maketrans('ab', '12')
print(s.translate(table))   # 输出 12cd--dc21

# 将先删除'ad',然后再转换
print(s.translate(table, 'ad'))     # 输出 2c--c2

doc:

string. maketrans ( from, to )

Return a translation table suitable for passing to translate(), that will map each character in from into the character at the same position in to;from and to must have the same length.

Note

Don’t use strings derived from lowercase and uppercase as arguments; in some locales, these don’t have the same length. For case conversions, always usestr.lower() andstr.upper().

str. translate ( table [, deletechars ] )

Return a copy of the string where all characters occurring in the optional argument deletechars are removed, and the remaining characters have been mapped through the given translation table, which must be a string of length 256.

You can use the maketrans() helper function in the string module to create a translation table. For string objects, set the table argument to None for translations that only delete characters:

>>> 'read this short text'.translate(None, 'aeiou')
'rd ths shrt txt'

New in version 2.6: Support for a None table argument.

For Unicode objects, the translate() method does not accept the optionaldeletechars argument. Instead, it returns a copy of thes where all characters have been mapped through the given translation table which must be a mapping of Unicode ordinals to Unicode ordinals, Unicode strings or None. Unmapped characters are left untouched. Characters mapped to None are deleted. Note, a more flexible approach is to create a custom character mapping codec using the codecs module (see encodings.cp1251 for an example).



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值