如何根据给定的字典翻译 Python 字符串?


要根据给定的字典翻译 Python 字符串,您可以结合使用 `translate()` 方法和 `str.maketrans()` 函数。`str.maketrans()` 函数根据给定的字典创建一个翻译表,该字典将字典中的每个字符映射到其对应的翻译。以下是一些示例

使用字典翻译字符串

示例

字典 `translation_dict` 定义了将输入字符串中的每个字母映射到其对应数字的规则。我们使用 `str.maketrans()` 函数创建翻译表,并使用 `translate()` 方法将其应用于示例字符串 `text`。结果是翻译后的字符串,它将每个字母替换为其对应的数字。

# define a dictionary to map characters to their translations
translation_dict = {"a": "1", "b": "2", "c": "3", "d": "4"}
# define a sample string to be translated
text = "abcd"
# create a translation table using the dictionary
translation_table = str.maketrans(translation_dict)
# translate the string using the table
translated_text = text.translate(translation_table)
# print the translated string
print(translated_text)

输出

1234

使用缺少某些键的字典翻译字符串

示例

在这个例子中,字典 `translation_dict` 不包含字母“d”和“e”的翻译。当 `translate()` 方法遇到这些字符时,它只是将它们原样保留在翻译后的字符串中。

# define a dictionary to map characters to their translations
translation_dict = {"a": "1", "b": "2", "c": "3"}
# define a sample string to be translated
text = "abcde"
# create a translation table using the dictionary
translation_table = str.maketrans(translation_dict)
# translate the string using the table
translated_text = text.translate(translation_table)
# print the translated string
print(translated_text)

输出

123de

使用包含额外字符的字典翻译字符串

示例

在这个例子中,字典 `translation_dict` 不仅包含字母的翻译,还包含空格和句点的翻译。生成的翻译将每个字符替换为字典中对应的值,包括空格和句点,它们分别被翻译为“-”和“!”。

# define a dictionary to map characters to their translations
translation_dict = {"a": "1", "b": "2", "c": "3", "d": "4", " ": "-", ".": "!"}
# define a sample string to be translated
text = "a b.c.d"
# create a translation table using the dictionary
translation_table = str.maketrans(translation_dict)


# translate the string using the table
translated_text = text.translate(translation_table)
# print the translated string
print(translated_text)

输出

 1-2!3!4

使用 `str.translate()` 方法和字典

示例

在这个例子中,我们首先创建一个字典来定义字符翻译。然后,我们使用 `str.maketrans()` 方法创建一个翻译表,并将字典作为参数传入。然后,我们使用带有翻译表的 `translate()` 方法来翻译字符串。输出应该是“56789”。

# create a dictionary to translate characters
translation_dict = {
    "a": "5",
    "b": "6",
    "c": "7",
    "d": "8",
    "e": "9"
}
# sample string
text = "abcde"
# create a translation table from the dictionary
translation_table = str.maketrans(translation_dict)
# translate the string using the translation table
translated_text = text.translate(translation_table)
# print the translated text
print(translated_text)

输出

56789

使用循环和 `str.replace()` 方法

示例

在这个例子中,我们使用循环遍历字典,并替换字符串中的每个字符。我们使用 `str.replace()` 方法将字典中键的每次出现替换为对应的值。输出应该是“12345”。但是,对于较大的字符串和字典,这种方法可能不如前面的示例高效。

# create a dictionary to translate characters
translation_dict = {
    "a": "1",
    "b": "2",
    "c": "3",
    "d": "4",
    "e": "5"
}
# sample string
text = "abcde"
# loop through the dictionary and replace each character in the string
for key, value in translation_dict.items():
    text = text.replace(key, value)
# print the translated text
print(text)

输出

12345

更新于:2023年8月11日

2K+ 次查看

启动您的 职业生涯

完成课程获得认证

开始学习
广告