字符串maketrans() 方法返回可用于translate() 方法的转换映射表。
简单来说,maketrans()
方法是一种静态方法,它创建一个字符到其翻译/替换的一对一映射。
它为每个字符创建一个 Unicode 表示以进行翻译。
当在translate() 方法中使用时,此转换映射随后用于将字符替换为其映射的字符。
用法:
string.maketrans(x[, y[, z]])
在这里,y
和 z
是可选参数。
参数:
maketrans()
方法采用 3 个参数:
- x- 如果只提供一个参数,它必须是字典。
字典应包含从单个字符串到其翻译的一对一映射,或一个 Unicode 数字(对于 'a' 为 97)到其翻译的一对一映射。 - y- 如果传递了两个参数,则它必须是两个长度相等的字符串。
第一个字符串中的每个字符都是对第二个字符串中相应索引的替换。 - z- 如果传递了三个参数,则第三个参数中的每个字符都映射为 None。
返回:
maketrans()
方法返回一个转换表,其中包含 Unicode 序数与其转换/替换的一对一映射。
示例 1:使用带有 maketrans() 的字典的翻译表
# example dictionary
dict = {"a": "123", "b": "456", "c": "789"}
string = "abc"
print(string.maketrans(dict))
# example dictionary
dict = {97: "123", 98: "456", 99: "789"}
string = "abc"
print(string.maketrans(dict))
输出
{97: '123', 98: '456', 99: '789'} {97: '123', 98: '456', 99: '789'}
这里,定义了字典dict
。它包含字符 a、b 和 c 分别到 123、456 和 789 的映射。
maketrans()
创建字符的 Unicode 序数与其相应翻译的映射。
因此,97 ('a') 映射到 '123',98 'b' 映射到 456,99 'c' 映射到 789。这可以从两个字典的输出中得到证明。
此外,如果字典中映射了两个或更多字符,则会引发异常。
示例 2:使用带有 maketrans() 的两个字符串的翻译表
# first string
firstString = "abc"
secondString = "def"
string = "abc"
print(string.maketrans(firstString, secondString))
# example dictionary
firstString = "abc"
secondString = "defghi"
string = "abc"
print(string.maketrans(firstString, secondString))
输出
{97: 100, 98: 101, 99: 102} ValueError: the first two maketrans arguments must have equal length
这里首先定义两个等长的字符串abc
和def
。并创建相应的翻译。
仅打印第一个翻译可以为您提供到 firstString
中每个字符的 Unicode 序数到 secondString
上相同索引字符的一对一映射。
在这种情况下,97 ('a') 映射到 100 ('d')、98 ('b') 到 101 ('e') 和 99 ('c') 到 102 ('f')。
尝试为不等长度的字符串创建转换表会引发 ValueError
异常,指示字符串必须具有相等的长度。
示例 3:带有 maketrans() 的可移动字符串的翻译表
# first string
firstString = "abc"
secondString = "def"
thirdString = "abd"
string = "abc"
print(string.maketrans(firstString, secondString, thirdString))
输出
{97: None, 98: None, 99: 102, 100: None}
这里,首先,创建两个字符串firstString
和secondString
之间的映射。
然后,第三个参数thirdString
将其中每个字符的映射重置为None
,并为不存在的字符创建一个新映射。
在这种情况下,thirdString
将 97 ('a') 和 98 ('b') 的映射重置为 None
,并为映射到 None
的 100 ('d') 创建一个新映射。
相关用法
- Python String max()用法及代码示例
- Python String min()用法及代码示例
- Python String Center()用法及代码示例
- Python String decode()用法及代码示例
- Python String join()用法及代码示例
- Python String casefold()用法及代码示例
- Python String isalnum()用法及代码示例
- Python String rsplit()用法及代码示例
- Python String startswith()用法及代码示例
- Python String rpartition()用法及代码示例
- Python String splitlines()用法及代码示例
- Python String upper()用法及代码示例
- Python String isprintable()用法及代码示例
- Python String translate()用法及代码示例
- Python String title()用法及代码示例
- Python String replace()用法及代码示例
- Python String split()用法及代码示例
- Python String format_map()用法及代码示例
- Python String zfill()用法及代码示例
- Python String isspace()用法及代码示例
注:本文由纯净天空筛选整理自 Python String maketrans()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。