Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-如何按X,Y坐标对其排序_Python_Regex_Sorting - Fatal编程技术网

Python-如何按X,Y坐标对其排序

Python-如何按X,Y坐标对其排序,python,regex,sorting,Python,Regex,Sorting,我想知道如何根据下面的X-Y坐标对其进行排序。 下面的数组(coords)以这种方式给我一个输出 220x600+200+300 200x300+400+500 我想按最后两位数字排序: 200+300为X坐标和Y坐标 400+500是X坐标和Y坐标 我希望它以这种方式被分类。。。首先是Y,然后是X,类似于下面的 [0,0]、[1,0]、[2,0]、[0,1]、[1,1]、[2,1]、[0,2]、[1,2]、[2,2]] 请让我知道它是否可以实现。下面是我的代码片段。。。重要的是我没有修改数

我想知道如何根据下面的X-Y坐标对其进行排序。 下面的数组(coords)以这种方式给我一个输出

  • 220x600+200+300
  • 200x300+400+500
我想按最后两位数字排序: 200+300为X坐标和Y坐标 400+500是X坐标和Y坐标

我希望它以这种方式被分类。。。首先是Y,然后是X,类似于下面的 [0,0]、[1,0]、[2,0]、[0,1]、[1,1]、[2,1]、[0,2]、[1,2]、[2,2]]

请让我知道它是否可以实现。下面是我的代码片段。。。重要的是我没有修改数组列表(coords),只是按照我上面解释的方式对它进行排序

coords=re.findall(r“(\d+[xX]\d++\d++\d+),组件列表,re.IGNORECASE)
对于协调中的协调[1:]:
分辨率=重新搜索(r“(\d+[xX]\d+”),坐标,重新忽略案例)
分辨率=分辨率。组(1)
coord=re.search(r“(\d++\++\d+),coord,re.IGNORECASE)
协调=协调组(1)

我自己解决了这个问题。。以防有人需要我的答案,下面是我使用的。。我创建了下面的函数,然后在sorted()中使用了该函数

def排序依据(x):
coord=re.search(r“\+(\d++\+\d+),x,re.IGNORECASE)
coord_cut=“{}”.format(coord.group(1)).split('+'))
返回[coord_-cut[1],coord_-cut[0]]
coords=re.findall(r“(\d+[xX]\d++\d++\d+),组件列表,re.IGNORECASE)
coords=排序(coords,key=按coord排序)

您能否显示组件列表最初是什么以及预期输出是什么?如果它很大,请提供一个包含必要案例和相应输出的片段。谢谢。组件列表是一个输出200x600+200+300等等的命令;输出在220x600+200+300上方的列表中。您可以编辑您的帖子以显示确切的结构吗?让我猜猜它是什么会让你很难重现你的代码,并验证我给你的解决方案对你的用例来说是有意义的。请看。首先,它令人困惑,因为
findall
对字符串进行操作,所以
component\u list
不是实际的列表。谢谢你的澄清。