如何实现Python字符串指定字母双向互换?a↔e、b↔g求简洁方案
字符双向替换简化实现方案
你当前的实现存在硬编码索引的问题,仅能处理abcdefg这一个固定输入,一旦输入字符串的长度、字符位置发生变化就会失效,且逻辑冗余。
最优实现方案(Python内置方法)
直接使用str.maketrans()+str.translate()的组合,专门用于处理批量字符替换场景,代码简洁且性能优异:
# 定义双向替换映射规则 replace_map = {'a': 'e', 'e': 'a', 'b': 'g', 'g': 'b'} # 生成字符转换表 trans_table = str.maketrans(replace_map) input_str = "abcdefg" output = input_str.translate(trans_table) print(output)
运行后输出结果为egcdafb,完全符合要求。
手动循环实现方案
如果你不想调用内置转换方法,也可以用更简洁的遍历逻辑实现,无硬编码问题:
replace_map = {'a': 'e', 'e': 'a', 'b': 'g', 'g': 'b'} input_str = "abcdefg" result = [] for char in input_str: # 存在替换规则就用对应值,否则保留原字符 result.append(replace_map.get(char, char)) print(''.join(result))
两种方案都支持任意包含a/e/b/g的输入字符串,不需要提前查找字符索引,适配性远高于你当前的实现。
内容的提问来源于stack exchange,提问作者user16967598
相关产品推荐
相关产品推荐

