iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >对多维切片进行排序
  • 237
分享到

对多维切片进行排序

2024-04-04 23:04:06 237人浏览 泡泡鱼
摘要

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《对多维切片进行排序》带大家来了解一下##content_title##,希望对大家的知

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《对多维切片进行排序》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发


问题内容

想要根据 int 值对嵌套切片进行排序(升序到降序),但切片不受影响。

下面是我正在尝试的简短片段。

type Rooms struct {
    type   string
    total  string
}

CombinedRooms := make([][]Rooms)

// sort by price
for i, _ := range CombinedRooms {
    sort.Slice(CombinedRooms[i], func(j, k int) bool {
        netRateJ, _ := strconv.Atoi(CombinedRooms[i][j].Total)
        netRateK, _ := strconv.Atoi(CombinedRooms[i][k].Total)
        return netRateJ < netRateK
    })
}

即使在排序功能之后,切片组合房间仍然不受影响。

添加一个小示例:https://play.Golang.org/p/yygygjyQtkn


解决方案


您的示例 Https://play.golang.org/p/yyGygJyqtkn 正确地对内部切片进行排序,它打印相同的输出,因为内部切片具有相同的值。但是,如果您还想根据内部切片的值对 combinedrooms 进行排序,请添加以下代码:

sort.slice(combinedrooms, func(j, k int) bool {
            netratej, _ := strconv.atoi(combinedrooms[j][0].total)
            netratek, _ := strconv.atoi(combinedrooms[k][0].total)
            return netratej < netratek
    })

在这里查找工作代码https://play.golang.org/p/LLCeJdlE-hM

package main

import (
    "fmt"
    "sort"
    "strconv"
)

type Rooms struct {
    Type  string
    Total string
}

func main() {
    CombinedRooms := [][]Rooms{
        {Rooms{Type: "c", Total: "2"}, Rooms{Type: "b", Total: "1"}, Rooms{Type: "f", Total: "10"}},
        {Rooms{Type: "d", Total: "5"}, Rooms{Type: "a", Total: "0"}},
    }
    fmt.Println(CombinedRooms)

    for i, _ := range CombinedRooms {
        sort.Slice(CombinedRooms[i], func(j, k int) bool {
            netRateJ, _ := strconv.Atoi(CombinedRooms[i][j].Total)
            netRateK, _ := strconv.Atoi(CombinedRooms[i][k].Total)
            return netRateJ < netRateK
        })
    }
    fmt.Println(CombinedRooms)

    sort.Slice(CombinedRooms[:], func(i, j int) bool {
        for x := range CombinedRooms[i] {
            netRateJ, _ := strconv.Atoi(CombinedRooms[i][x].Total)
            netRateK, _ := strconv.Atoi(CombinedRooms[j][x].Total)
            if netRateJ == netRateK {
                continue
            }
            return netRateJ < netRateK
        }
        return false
    })
    fmt.Println(CombinedRooms)
}

playground link

我现在明白你的问题了,上面的解决方案尝试通过比较每个内部切片元素来对外部切片中的内部切片进行排序(应在其中对内部切片元素进行排序)。如果你想要更好的,我相信你必须把切片压平并分类。

以上就是《对多维切片进行排序》的详细内容,更多关于的资料请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 对多维切片进行排序

本文链接: https://www.lsjlt.com/news/595936.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 对多维切片进行排序
    Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《对多维切片进行排序》带大家来了解一下##content_title##,希望对大家的知...
    99+
    2024-04-04
  • 对切片进行排序:利用排序方法实现切片排序
    目前编程网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《对切片进行排序:利用排序方法实现切片排序》,也希望能帮助到大家,如果阅读完后真的对你学习G...
    99+
    2024-04-04
  • 按给定切片对切片字符串进行排序/排序
    哈喽!大家好,很高兴又见面了,我是编程网的一名作者,今天由我给大家带来一篇《按给定切片对切片字符串进行排序/排序》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发!...
    99+
    2024-04-04
  • JavaScript中怎么对多维数组多键值进行排序
    JavaScript中怎么对多维数组多键值进行排序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JavaScript实现多维数...
    99+
    2024-04-02
  • PHP如何对多个数组或多维数组进行排序
    这篇文章将为大家详细讲解有关PHP如何对多个数组或多维数组进行排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 中对多维数组排序的深入指南 PHP 提供了多种方法对多维数组进行排序,可针对各种排序...
    99+
    2024-04-02
  • 如何使用golang中的sort.Slice函数对切片进行排序
    对切片进行排序是Golang中常用的一个功能,可以使用sort.Slice函数快速实现。这个函数允许通过传入一个自定义的比较函数来对切片进行排序。sort.Slice函数的定义如下:func Slice(slice interface{},...
    99+
    2023-11-18
    Golang sortSlice 切片排序
  • labview怎么对二维数组进行排序
    在LabVIEW中,可以使用Sort 2D Array函数对二维数组进行排序。以下是一个示例步骤:1. 创建一个二维数组。可以使用B...
    99+
    2023-09-26
    labview
  • python如何对二维列表进行排序
    Python可以使用内置的sort()方法对二维列表进行排序。sort()方法可以接受一个可选的参数key,用于指定排序的依据。以下...
    99+
    2023-10-11
    python
  • php怎么对一维数组进行排序
    这篇文章主要介绍了php怎么对一维数组进行排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php怎么对一维数组进行排序文章都会有所收获,下面我们一起来看看吧。PHP作为脚本语言,常被用于Web开发方面的应用。...
    99+
    2023-07-05
  • python怎么对二维列表进行排序
    在Python中,可以使用sorted()函数来对二维列表进行排序。你可以通过传递一个lambda函数作为key参数来指定排序的规则...
    99+
    2024-02-29
    python
  • 详解Go语言如何使用标准库sort对切片进行排序
    目录sort 标准库Ints 和 IntsAreSortedFloat64s 和 Float64sAreSortedStrings 和 StringsAreSortedSortInt...
    99+
    2022-12-21
    Go语言sort切片排序 Go语言 切片排序 Go语言sort
  • Java Stream流对多个字段进行排序
    谈起Java 8,不少熟悉它的人,都会知道有一个对我们帮助很大的新特性,没错,就是我们在项目中经常用到的stream,它对我们处理数据的过程中提供了很多的便利,而这边文章主要讲述stream的便利之一...
    99+
    2023-09-03
    java stream流对多字段进行排序
  • 怎么在Java中对多线程进行排序
    怎么在Java中对多线程进行排序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向...
    99+
    2023-06-14
  • Python中对list进行排序
    很多时候,我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序方法2.用built-in函数sorted进行排序(从2.4开始)这两种方法使用起来差不多,以第一种为...
    99+
    2023-01-31
    中对 Python list
  • C#对集合进行排序
    先来看看下面List<T>泛型集合的排序例子: using System; using System.Collections.Generic; using System....
    99+
    2024-04-02
  • python3 对图片进行局部切割
    先拿个图片举例子,比如说截取途中方框内的图片:# 导入相关的库 from PIL import Image # 打开一张图 img = Image.open('test.jpg') # 图片尺寸 img_size = img.size h...
    99+
    2023-01-31
    局部 图片
  • 如何在 PHP 中对多维数组进行排序,同时保留键名?
    对多维数组同时保留键名排序:1. 使用 uksort(),根据键值进行排序,提供比较函数返回1、-1或0,指示键值的相对顺序。2. 使用 krsort(),对键值从高到低排序,接受一个数...
    99+
    2024-05-03
    php 多维数组排序
  • golang切片怎么排序
    Go语言中,切片(slice)是一个引用类型。切片可以看做是固定大小的数组的引用。在Go语言中,切片长度是可以改变的。而排序是编程中常用的操作之一,本文将介绍如何使用Go语言对切片进行排序。一、sort包的使用Go语言中提供了sort包,包...
    99+
    2023-05-14
  • PHP中怎么对多维数组排序
    PHP中怎么对多维数组排序,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。的例子:<php $data = array(array(&qu...
    99+
    2023-06-17
  • MongoDB对指定键进行排序
    1.查看集合 show collections2.查看所有数据 db.runoob.find().pretty()3.通过view进行升序 db.runoob.find({'title':/...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作