在Golang中,有没有一种简单的方法可以使用多键排序并插入到切片中?

在Golang中,有没有一种简单的方法可以使用多键排序并插入到切片中?,go,Go,我有一个python函数,如下所示 def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]: people = sorted(people, key=lambda x: (-x[0], x[1])) ans = [] for a in people: ans.insert(a[1], a) return ans 在上

我有一个python函数,如下所示

def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
        people = sorted(people, key=lambda x: (-x[0], x[1]))
        ans = []
        for a in people:
            ans.insert(a[1], a)
        return ans
在上述功能中有两件事。 1.使用多键x[0](降序)和x[1](升序)对二维数组进行排序 2.通过循环在数组中插入元素

输入:[[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]

在Golang中,我找不到一种简单或直接的方法来实现这种逻辑。有人能帮我翻译一下这段代码吗?

package main
进口(
“容器/列表”
“fmt”
“排序”
)
类型对结构{
x int
y整数
}
//打印:打印列表
func打印(l*list.list){
对于e:=l.Front();e!=nil;e=e.Next(){
fmt.Printf(“%v\n”,e.Value)
}
}
//do:完成所有重要的操作
func do(队列[]对)*list.list{
sort.Slice(队列,func(i,j int)bool{
//如果第一个字段的值相等,则继续排序
//第二个字段的基础(升序)
如果队列[i].x==队列[j].x{
返回队列[i].y<队列[j].y
}
//Else根据第一个字段排序(降序)
返回队列[i].x>队列[j].x
})
//创建一个列表
ans:=list.New()
对于i:=范围队列{
元素{},0,队列[i].y
//根据元素的第二个字段循环查找要装入的位置
对于elem=ans.Front();elem!=nil;elem=elem.Next(){
如果ix==ixMark{
打破
}
九++
}
如果elem==nil{
//如果列表为空,则添加
ans.PushBack(队列[i])
}否则{
//在标记的元素之前添加
ans.InsertBefore(队列[i],元素)
}
}
返回ans
}
func main(){
元素:=[]对{
{7, 0},
{4, 4},
{7, 1},
{5, 0},
{6, 1},
{5, 2},
}
队列:=do(元素)
打印(队列)
//输出:
// {5 0}
// {7 0}
// {5 2}
// {6 1}
// {4 4}
// {7 1}
}
对代码进行了注释,以便您能够理解。因此,基本上,切片和列表的组合可以帮助您实现相同的目标。毫无疑问,在围棋中可能有更简单、更短的方法来实现同样的目标

我的实现非常简单