方法一:
maketrans方法, 它使用的是一种映射关系来将(中文字符)转换为(英文字符),前提需要维护映射关系数据,也就是你维护了(中文符号),你也得维护其对应的(英文符号),且两边的数量得保持一致, 否则会报错
优点:可以一次性转换多个符号或字符,拓展性强 。缺点是代码长了点
(中文符号)转(英文符号)
# 定义中文符号
chinese_character = r',。!?;:()《》【】“”\‘\’、中文'
# 定义对应的英文符号
english_character = r',.!?;:()<>[]""\'\' 英文'
# 创建转换表
table = str.maketrans(chinese_character, english_character)
# 要转换的中文句子
str = '(中文符号)转(英文符号)中文'
# 进行转换
English_Symbols = str.translate(table)
# 输出结果
print(English_Symbols)
执行结果>>>
(英文符号)转(英文符号)英文
(英文符号)转(中文符号):直接将 str.maketrans 里面的参数对调一下即可
# 创建转换表
table = str.maketrans(english_character,chinese_character)
方法二:
replace方法:
如果你只想转换一个字符, 这个方法会比较简单,这个方法的作用是字符串替换功能, 将关键字替换成你想要的字符
优点:代码简洁,一目了然。缺点是功能小了点
# 比较简单,注释我就不写了
a = '123,456'
print(a.replace(',', ':'))
执行结果>>>
123:456
或者你可以使用我编写的 replace 升级版,可以拿来直接使用,它的强大之处是可以同时处理多个(字符串主体),并且一个(字符串主体)可以同时处理多个关键字替换,拿来可以直接使用。
格式为:key_replace(原始字符,{'关键字':'新数据'})
批量格式为:key_replace(原始字符1,原始字符2,{'关键字1':'新数据1','关键字2':'新数据2'},{'关键字':'新数据'})
import ast
# 关键字替换字符串:
def key_replace(*args):
"""
传入格式说明:key_replace(原始字符串,{'关键字':'新数据'})
可变传参说明:key_replace(原始字符串1,原始字符串2,{'关键字1':'新数据1','关键字2':'新数据2'},{'关键字':'新数据'})
PS: 一个(原始字符串)对应一个字典,一个字典可以传入多个关键字替换
:return:
"""
str_main = [] # 用于存储传入的字符串主体
rep_info = [] # 用于存储传入替换关键字信息
for key_info in args: # 遍历传入的参数
if isinstance(key_info, dict): # 如果是字典格式,则代表是(替换关键字信息)
rep_info.append(key_info)
else: # 如果是字符串或其它,则将其添加到字符串列表中
str_main.append(key_info)
case_list = [] # 用于存储替换后的结果
# 遍历传入的字符串和字典,分别进行替换操作
for case_data, key_dict in zip(str_main, rep_info):
for key_, value in key_dict.items(): # 遍历字典中的所有键值对
case_data = str(case_data).replace(key_, str(value)) # 替换指定的关键词
try:
ast.literal_eval(case_data) # 尝试将替换后的字符串解析为对应数据类型
except SyntaxError: # 如果解析失败,则将字符串加入到case_list中
case_list.append(case_data)
else: # 如果解析成功,则将解析后的结果加入到case_list中
case_list.append(ast.literal_eval(case_data))
if len(case_list) == 1: # 如果case_list中元素个数为1,则返回该元素(而不是一个列表)
return case_list[0]
return case_list # 否则,整体返回case_list
希望能帮到你,类似这些小功能我的建议是自己写一个出来。