如何根据Julia中的每个长度对因子为((x1,y1)、(x2,y2))的数组进行排序

如何根据Julia中的每个长度对因子为((x1,y1)、(x2,y2))的数组进行排序,julia,Julia,我想对一个数组进行排序,它的因子为((x1,y1),(x2,y2)),并根据Julia中的每个长度表示一条线的两条边 由于Python和Julia之间的细微差别,我无法写作。 在Python中,行的排序如下: lines = [ ((l[0][0], l[0][1]), (l[0][2], l[0][3])) for l in lines ] lines.sort(key = lambda l: -sqrt((l[0][0]-l[1][0])**2+(l[0][1]-l[1][1])**2))

我想对一个数组进行排序,它的因子为((x1,y1),(x2,y2)),并根据Julia中的每个长度表示一条线的两条边
由于Python和Julia之间的细微差别,我无法写作。
在Python中,行的排序如下:

lines = [ ((l[0][0], l[0][1]), (l[0][2], l[0][3])) for l in lines ]
lines.sort(key = lambda l: -sqrt((l[0][0]-l[1][0])**2+(l[0][1]-l[1][1])**2))

如何在Julia中编写相同的流程?

您似乎想要这样:

lines = [((a,b), (c,d)) for (a,b,c,d) in lines]
还是这个

lines = [((a,b), (c,d)) for (a,b,c,d) in eachrow(lines)]
(我需要一个输入<代码>行<代码>的示例和预期的输出示例来确定)

要对其进行排序,只需使用
by
kwarg:

sort!(lines, by=(((a,b), (c,d)),) -> -sqrt((a-c)^2+(b-d)^2))


对不起,我忘了写排序过程。添加了
排序示例
sort!(lines, by=x -> -sqrt((x[1][1]-x[2][1])^2+(x[2][1]-x[2][2])^2))