Python实现列表每2个元素反转(Django谷歌地图经纬度坐标调整)
Python 实现经纬度顺序调整
核心思路
现有坐标列表按「纬度1, 经度1, 纬度2, 经度2...」的规律排列,每2个元素为一组,只需将每组内的两个元素交换顺序,再重新拼接为扁平化列表即可。
代码实现
# 原始坐标列表 coordinates = [65.56147597726766, -104.83033675930798, 64.44751706485646, -93.93189925930798, 58.232434372977615, -98.85377425930798] # 步长为2切片分别取出所有纬度、经度 lats = coordinates[::2] lons = coordinates[1::2] # 按经度在前、纬度在后的顺序交错拼接为新列表 new_coordinates = [val for pair in zip(lons, lats) for val in pair]
执行后new_coordinates的输出就是你需要的格式:[-104.83033675930798, 65.56147597726766, -93.93189925930798, 64.44751706485646, -98.85377425930798, 58.232434372977615]
可选:异常校验
如果前端传入的坐标列表可能存在长度异常(不是偶数),可以提前增加校验逻辑避免报错:
if len(coordinates) % 2 != 0: # 可根据业务逻辑抛出异常或做其他处理 raise ValueError("坐标列表长度异常,应为偶数")
内容的提问来源于stack exchange,提问作者Kennoh
相关产品推荐
相关产品推荐

