Python中如何编写函数将字符串列表的每个元素转换为指定格式元组
解决方案
实现逻辑
你已经完成了单个元素的转换逻辑,只需要对列表的每一项遍历执行相同操作即可,注意提前去除每行末尾的换行符\n,避免浮点数转换异常。
代码实现
方案1:for循环实现(更易读,适合新手理解)
def parse_lines(lines): res_list = [] for line in lines: # 去除首尾空白(含换行)后按空格拆分 split_parts = line.strip().split(" ") # 按需求组装元组 item = (split_parts[0], [float(split_parts[1]), float(split_parts[2])]) res_list.append(item) return res_list # 测试调用 lines = ['1: 362.5815 162.5823\n', '2: 154.1328 354.1330\n', '3: 168.9325 368.9331\n'] result = parse_lines(lines) # 输出结果为 [('1:', [362.5815, 162.5823]), ('2:', [154.1328, 354.133]), ('3:', [168.9325, 368.9331])]
方案2:列表推导式实现(更简洁)
def parse_lines(lines): return [(p[0], [float(p[1]), float(p[2])]) for p in (line.strip().split() for line in lines)]
额外优化建议
- 把
split(" ")换成无参数的split(),可以自动适配多个空格、制表符等空白分隔场景,容错性更高 - 如果需要把第一个元素的序号转为整数,可将
split_parts[0]修改为int(split_parts[0].strip(':')),就能得到1、2这类整数序号
内容的提问来源于stack exchange,提问作者LucasTU
相关产品推荐
相关产品推荐

