如何将坐标列表转换为SVG多边形所需的空格分隔坐标字符串?
坐标列表转SVG多边形格式字符串的解决方法
给定坐标列表:
my_list = [[200.0, 10.0], [250.0, 190.0], [160.0, 210.0]]
需要转换为SVG多边形所需的空格分隔坐标字符串:
req_list = "200,10 250,190 160,210"
可行方案
方法1:嵌套join处理(推荐)
直接遍历每个坐标对,将每对坐标用逗号连接,再把所有坐标对用空格拼接:
my_list = [[200.0, 10.0], [250.0, 190.0], [160.0, 210.0]] # 保留小数形式 req_list = ' '.join([','.join(map(str, coord)) for coord in my_list]) # 输出:"200.0,10.0 250.0,190.0 160.0,210.0" # 如果需要去掉.0(转整数) req_list = ' '.join([f'{int(x)},{int(y)}' for x, y in my_list]) # 输出:"200,10 250,190 160,210"
方法2:格式化字符串控制精度
如果需要灵活控制小数位数(比如保留1位小数或去掉不必要的.0),可以用格式化字符串:
# 强制去掉小数部分(适合确定坐标是整数的场景) req_list = ' '.join([f'{x:.0f},{y:.0f}' for x, y in my_list]) # 输出:"200,10 250,190 160,210" # 保留1位小数 req_list = ' '.join([f'{x:.1f},{y:.1f}' for x, y in my_list]) # 输出:"200.0,10.0 250.0,190.0 160.0,210.0"
为什么replace方法无效?
replace是字符串对象的方法,不能直接用于列表。如果先把列表转成字符串再调用replace,虽然能临时解决问题,但容错性差——比如列表结构变化、包含其他特殊字符时,会出现意外错误,因此不推荐这种方式。
内容的提问来源于stack exchange,提问作者user110920
相关产品推荐
相关产品推荐

