如何将字符串格式坐标列表拆分为Latitude(纬度)和Longitude(经度)两个列表
你当前拿到的latlon_列表内的元素是字符串格式的元组,并非Python原生的元组对象,所以直接用zip拆分不会生效,需要先把字符串转换成包含数值的真实元组,再做拆分。
方案1:使用ast.literal_eval安全解析(推荐)
这个方法是Python官方支持的字符串转Python对象的安全方案,没有eval的任意代码执行风险。
import ast # 第一步:把所有字符串元组转成真实的float类型元组 coord_tuples = [ast.literal_eval(coord_str) for coord_str in latlon_] # 第二步:拆分得到纬度列表和经度列表 lat_list, lon_list = map(list, zip(*coord_tuples))
运行后lat_list就是所有纬度组成的列表,lon_list就是所有经度组成的列表。
方案2:纯字符串处理(无需导入模块)
如果你不想额外导入模块,可以直接对字符串做裁剪、分割后转数值:
lat_list = [] lon_list = [] for coord_str in latlon_: # 去掉首尾的括号,按逗号分割成两个独立的数值字符串 lat_str, lon_str = coord_str.strip('()').split(',') # 去除多余空格后转float,分别加入对应列表 lat_list.append(float(lat_str.strip())) lon_list.append(float(lon_str.strip()))
内容的提问来源于stack exchange,提问作者WallyWorld
相关产品推荐
相关产品推荐

