You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python处理三维列表:如何移除最内层方括号及元素分隔逗号

三维列表格式转换实现

问题背景

开发中需处理三维坐标列表,要求移除最内层方括号,将最内层两个数值之间的分隔逗号替换为空格。

原始列表

[
    [[2.250922, 48.867699], [2.250805, 48.867744], [2.250688, 48.867699], [2.250688, 48.867611], [2.250805, 48.867566], [2.250922, 48.867611], [2.250922, 48.867699]],
    [[2.251038, 48.867832], [2.250922, 48.867877], [2.250805, 48.867832], [2.250805, 48.867744], [2.250922, 48.867699], [2.251038, 48.867744], [2.251038, 48.867832]]
]

期望输出格式

[[2.250922 48.867699, 2.250805 48.867744, 2.250688 48.867699, 2.250688 48.867611, 2.250805 48.867566, 2.250922 48.867611, 2.250922 48.867699], [2.251038 48.867832, 2.250922 48.867877, 2.250805, 48.867832, 2.250805 48.867744, 2.250922 48.867699, 2.251038 48.867744, 2.251038 48.867832]]

之前方案的问题

  • 普通列表扁平化仅能移除外层括号,无法修改内层元素的分隔格式
  • 之前使用的列表推导式new_list = [[item[0] for item in inner_list] for inner_list in outer_list]仅提取了每个最内层二元组的第一个元素,直接丢失了所有第二个坐标值,因此会缺失全部48.xx开头的数值。

实现方案

你需要的输出是特定格式的字符串,Python原生列表不支持“元素间用空格分隔、移除内层括号”的结构,不需要在列表对象层面做转换,直接遍历拼接字符串即可:

original_list = [[[2.250922, 48.867699], [2.250805, 48.867744], [2.250688, 48.867699], [2.250688, 48.867611], [2.250805, 48.867566], [2.250922, 48.867611], [2.250922, 48.867699]], [[2.251038, 48.867832], [2.250922, 48.867877], [2.250805, 48.867832], [2.250805, 48.867744], [2.250922, 48.867699], [2.251038, 48.867744], [2.251038, 48.867832]]]

mid_res = []
for sub_list in original_list:
    # 将每个坐标对转为空格分隔的字符串
    coord_strs = [f"{lon} {lat}" for lon, lat in sub_list]
    mid_res.append(f"[{', '.join(coord_strs)}]")
final_output = f"[{', '.join(mid_res)}]"

print(final_output)

注意事项

  • 你给出的期望样例中存在一处笔误:2.250805, 48.867832位置多了一个多余的逗号,上述代码输出的是符合格式逻辑的正确结果,无多余符号。
  • 如果后续需要对坐标做数值计算,不要转成上述字符串格式,保留原生嵌套列表结构即可,字符串格式仅适合特定场景的文本输出需求。

内容的提问来源于stack exchange,提问作者sdiv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 12:21:34