如何将嵌套列表中的多组字符串值转换为浮点数
如何将嵌套字符串列表转换为浮点数列表?
输入列表
[[ ['3.31497114423,50.803721015'], ['7.09205325687,50.803721015'], ['7.09205325687,53.5104033474'], ['3.31497114423,53.5104033474'], ['3.31497114423,50.803721015'] ]]
期望输出
[[ [3.31497114423,50.803721015], [7.09205325687,50.803721015], [7.09205325687,53.5104033474], [3.31497114423,53.5104033474], [3.31497114423,50.803721015] ]]
解决方案
方法一:嵌套列表推导式(简洁高效)
用Python列表推导式可以一行完成转换,逻辑紧凑且执行高效:
original_list = [[ ['3.31497114423,50.803721015'], ['7.09205325687,50.803721015'], ['7.09205325687,53.5104033474'], ['3.31497114423,53.5104033474'], ['3.31497114423,50.803721015'] ]] converted_list = [[[float(coord) for coord in item[0].split(',')] for item in sublist] for sublist in original_list]
方法二:嵌套循环(直观易懂)
如果对列表推导式不熟悉,用嵌套循环分步处理更易理解:
original_list = [[ ['3.31497114423,50.803721015'], ['7.09205325687,50.803721015'], ['7.09205325687,53.5104033474'], ['3.31497114423,53.5104033474'], ['3.31497114423,50.803721015'] ]] converted_list = [] # 遍历最外层的子列表 for sublist in original_list: temp_sublist = [] # 遍历子列表中的每个单元素列表 for item in sublist: # 拆分逗号分隔的字符串为两个坐标字符串 coord_strings = item[0].split(',') # 将每个坐标字符串转为浮点数 coord_floats = [float(coord) for coord in coord_strings] temp_sublist.append(coord_floats) converted_list.append(temp_sublist)
两种方法最终都会得到你期望的浮点数嵌套列表。
内容的提问来源于stack exchange,提问作者Niek
相关产品推荐
相关产品推荐

