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

如何从Python列表提取坐标值用于CAD软件输入?

问题描述

给定列表:

some_list=["PointID:","1","'Y':", "1.134","'X':","1.223", "'Z':","1.0","PointID","2", "'Y':","1.4", "'X':","1.75","'Z':","1.0"]

需要提取其中的坐标值(如1.134、1.223等),保存为TXT文件作为CAD绘图输入,期望输出格式:

Y: 1.134 
X: 1.223 

尝试过以下代码,但无法获取坐标值:

some_list=["PointID:","1","'Y':", "1.134","'X':","1.2223", "'Z':","1.0","PointID","2", "'Y':","1.4", "'X':","1.75","'Z':","1.0"]
for index, element in enumerate(some_list): 
    if element == "'X':" or element == "'Y':" or element == "'Z':":
        print(index, next(element))

遇到的问题:next()不适用于字符串,element+1也无法获取下一个元素,只能拿到标识的索引和内容,无法提取对应坐标值。

解决方案

直接利用列表的索引定位,因为坐标值始终在对应标识的下一个位置,具体实现如下:

some_list = ["PointID:","1","'Y':", "1.134","'X':","1.223", "'Z':","1.0","PointID","2", "'Y':","1.4", "'X':","1.75","'Z':","1.0"]
output_lines = []

for index, element in enumerate(some_list):
    # 匹配坐标标识
    if element in ("'X':", "'Y':", "'Z':"):
        # 获取下一个元素作为坐标值
        coord_value = some_list[index + 1]
        # 处理标识格式,去掉引号
        coord_label = element.strip("'").strip(":") + ":"
        # 拼接成期望的格式
        output_line = f"{coord_label} {coord_value}"
        output_lines.append(output_line)
        # 打印输出
        print(output_line)

# 保存到TXT文件
with open("cad_coords.txt", "w") as f:
    f.write("\n".join(output_lines))

关键说明:

  • 通过enumerate获取元素的索引,当匹配到坐标标识时,用index+1直接取列表中的下一个元素,这就是对应的坐标值
  • 用strip("'").strip(":")处理标识字符串,把'Y':转换成Y:,符合期望的输出格式
  • 收集所有结果后,通过文件写入操作保存到TXT文件,方便CAD软件读取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:06:22