Python如何从字符串中提取特定字符?以提取坐标值存储为变量为例
Python 从指定格式字符串中提取坐标值的实现方案
实现思路
直接通过正则表达式匹配所有x=、y=后紧跟的2-3位数字,完全符合你给出的坐标值规则,无需做复杂的字符串分割处理。
完整代码实现
import re # 原始字符串 raw_str = "coordinates:x=22,y=45;x=144,y=56;x=26,y=13;x=144,y=87" # 正则匹配所有2-3位的坐标值,直接转为整数 coord_values = list(map(int, re.findall(r'[xy]=(\d{2,3})', raw_str))) # 按顺序赋值给8个变量 xCoord1, yCoord1, xCoord2, yCoord2, xCoord3, yCoord3, xCoord4, yCoord4 = coord_values # 测试输出 print(f"xCoord1 = {xCoord1}") print(f"yCoord1 = {yCoord1}") print(f"xCoord2 = {xCoord2}") print(f"yCoord2 = {yCoord2}") print(f"xCoord3 = {xCoord3}") print(f"yCoord3 = {yCoord3}") print(f"xCoord4 = {xCoord4}") print(f"yCoord4 = {yCoord4}")
输出结果
xCoord1 = 22 yCoord1 = 45 xCoord2 = 144 yCoord2 = 56 xCoord3 = 26 yCoord3 = 13 xCoord4 = 144 yCoord4 = 87
扩展建议
如果后续坐标数量不固定,不建议定义大量独立变量,可以将结果存为列表格式,方便遍历调用:
# 存为字典列表,访问方式为 coords[0]['x']、coords[0]['y'] coords = [{"x": coord_values[i], "y": coord_values[i+1]} for i in range(0, len(coord_values), 2)]
内容的提问来源于stack exchange,提问作者hbae
相关产品推荐
相关产品推荐

