登录
首页 >  Golang >  Go问答

将 Python 的基于键的排序代码转换为 GO 的键排序代码的方法

来源:stackoverflow

时间:2024-03-25 08:06:32 260浏览 收藏

在将 Python 代码转换为 Go 时,需要将基于键的排序代码转换为键排序代码。Go 的 sort 包提供了对切片进行排序的功能,可以根据特定键对切片进行排序。通过实现自定义方法来指导排序方式,可以将切片中的前五个元素按所需方式选择出来。

问题内容

我是 go 新手。我正在将代码从 python 转换为 go。我想将此行转换为 go。我查看了谷歌但找不到任何支持的解决方案。 我很难处理这个问题。

# this will slice top five contour based on area
cnt = sorted(contours, key=cv2.contourArea, reverse=True)[:5]

我正在根据情况获取轮廓 [][]image.point 类型。

我有什么想法可以处理它吗?


解决方案


您必须使用 sort 包对切片进行排序,然后您可以以相同的方式选择前五个(使用 [:5])。

您可能需要编写一些自定义方法来按照您想要的确切方式指导排序。 documentation of the sort package 中有几个例子 - 例如请参阅 sortkeys

Another example from gobyexample 显示了如何:

package main

import (
    "fmt"
    "sort"
)

type byLength []string

func (s byLength) Len() int {
    return len(s)
}
func (s byLength) Swap(i, j int) {
    s[i], s[j] = s[j], s[i]
}
func (s byLength) Less(i, j int) bool {
    return len(s[i]) < len(s[j])
}

func main() {
    fruits := []string{"peach", "banana", "kiwi"}
    sort.Sort(byLength(fruits))
    fmt.Println(fruits)
}

本篇关于《将 Python 的基于键的排序代码转换为 GO 的键排序代码的方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>