如何将字母数字混合字符串的字母转对应数字并保留原有数字
混合字符串转换方案调整
核心修改点
原有代码仅处理了字母转序号的逻辑,缺少字符类型判断,只需在遍历字符时新增分支判断即可满足需求:
- 遇到字母:转换为字母表对应1~26的序号后转字符串
- 遇到数字:直接保留原字符
完整实现代码(Python)
def convert_mixed_str(raw_str): output_parts = [] for char in raw_str: if char.isalpha(): # 兼容大写字母可替换为:ord(char.lower()) - 96 seq_num = ord(char) - 96 output_parts.append(str(seq_num)) elif char.isdigit(): output_parts.append(char) return ''.join(output_parts) # 整行数据处理逻辑 def process_full_line(line_text): line_items = line_text.split() # 仅替换第二列的混合字符串 line_items[1] = convert_mixed_str(line_items[1]) return ' '.join(line_items) # 测试示例 test_input = [ "0 newyork2510 2", "1 boston76w2 1", "2 chicago785dw 1", "3 san891dwn39210114 1", "4 f2391rpg 1" ] for line in test_input: print(process_full_line(line))
结果验证
运行代码后第一行输出为0 14523251518112510 2,和预期结果完全匹配。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

