按内部元素的数量对二维数组进行排序

2023-12-05

如何按二维数组内部元素的长度对其进行排序?内部元素的数量不相同。

Example:

a = [[1], [2, 3], [4, 5, 6, 7], [8, 9]]

排序后,数组变为:

#=> [[4, 5, 6, 7], [2, 3], [8, 9], [1]]

该解决方案有效:

a = [[1], [2, 3], [4, 5, 6, 7], [8, 9]]
a.sort_by! { |array| -array.length }
#=> [[4, 5, 6, 7], [8, 9], [2, 3], [1]]

我正在使用sort_by方法并按长度从最大到最小排序。

这个解决方案更具可读性并且也有效,但速度有点慢:

a = [[1], [2, 3], [4, 5, 6, 7], [8, 9]]
a.sort_by(&:length).reverse!
#=> [[4, 5, 6, 7], [8, 9], [2, 3], [1]]

我正在使用sort_by使用 length 的方法,它将按长度从小到大对数组进行排序。然后我用reverse!方法使其按从大到小的顺序排列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按内部元素的数量对二维数组进行排序 的相关文章

随机推荐

  • selenium.common.exceptions.WebDriverException:消息:“geckodriver”可执行文件需要位于 GeckoDriver Selenium Firefox 的 PATH 中

    我对 Pycharm 或 Python 不太了解 无法解决问题所在 在我看来 似乎应该执行这段简单的代码 但我得到了一堆对我来说没有任何意义的文本 使用 Selenium 的其他人会遇到此错误并知道如何修复它吗 物理代码 C Users N
  • 数据集的 SSRS 条件执行

    我在 SSRS 报告中有两个不同的数据集 它们提供了不同数量的输出字段 我已将这两个数据集使用到报告中的两个不同表中 1 根据条件 执行时一次显示一个表的输出 实际上 在运行报告时 两个数据集正在执行 SP 并且需要更多时间来显示输出 要求
  • 使用 applescript 激活 Emacs 功能的最有效方法

    有没有更好的方法来使用 applescript 激活 Emacs 中的功能 而不是打开迷你缓冲区来启动该功能 将手指从控制键上移开以使用键盘快捷键启动 applescript 需要一段延迟 以便 Emacs 不会将其注册为命令 并且在输入函
  • 向量和抽象类

    在 SFML 中 有几种类型的对象 sf Shape sf Sprite sf Text 继承了抽象基类 sf Drawable 如果我创建一个 std vector 我可以在该向量中存储继承 sf Drawable 类的所有对象吗 如果您
  • Python:在字符串中查找子字符串并返回子字符串的索引

    I have 一个函数 def find str s char 和一个字符串 Happy Birthday 我本质上想输入 py 并返回3但我不断得到2返回 Code def find str s char index 0 if char
  • linux下Mono共享库位置

    我有一个用 C 编写的共享库 我想在 Linux 下与 Mono 一起使用 我遵循这个指南http www mono project com Interop with Native Libraries 我让它工作 但我必须将我的库文件放入
  • 来自不同脚本的多个角度元素

    是否可以使用角元素从不同的脚本生成 我有 2 个项目天气小部件和时钟小部件 它们生成自己的脚本 连接所有必需的脚本 当我单独使用这些小部件时 它工作正常 但是当它们在同一页面上使用时 会出现如下错误 DOMException Failed
  • rxJS observable 未到达订阅

    我使用 Angular 2 和 RxJS 但我很难设置一个简单的可观察系统 据我了解 do 运算符用于产生副作用 并且您可以在 subscribe 函数中放置代码来处理 observable 返回的结果 所以我的组件要求服务初始化系统 该服
  • 如何发送验证电子邮件而不进入垃圾邮件文件夹?

    我有一个 PHP 网站 在创建新帐户时会发送验证码 我的问题是 几个月以来 很多电子邮件都进入了垃圾邮件文件夹 我想到了一个解决方案 那就是使用 外部服务 来发送我的电子邮件 而不是简单地通过 PHP 中的邮件函数发送它 问题 1 我应该使
  • Android 主题首选项对话框

    我有一个使用首选项活动来设置某些用户设置的应用程序 我一整天都在试图解决这个问题 当用户按下 编辑文本首选项 对象时 我尝试为警报对话框设置主题 将打开一个对话框 用户可以设置共享首选项 弹出对话框 我想要绿色的文字 我想要绿色的分隔线 线
  • 使用 Guice 注入通用实现

    我希望能够使用 Guice 注入通用接口的通用实现 public interface Repository
  • 如何通过 HttpsURLConnection 将发布数据发送到 https 服务器 [重复]

    这个问题在这里已经有答案了 我看到一个表格 https aptransport in CFSTONLINE Reports VehicleRegistrationSearch aspx 在网络中 如果我给出选择搜索元素 作为注册号并输入搜索
  • 使用 XSLT 模板从一个 JAXB 对象转换为另一个 JAXB 对象

    有没有办法使用 XSLT 模板文件将 JAXB 生成的对象转换为另一个 JAXB 对象 这两个对象由两个不同的 JAXB 绑定生成 我知道我可以将对象编组为字符串 然后使用 XSLT 处理器将其转换为其他格式 之后将其解组到另一个 JAXB
  • Bazel 如何构建一个链接预构建外部库的简单应用程序

    Using Bazel2 2 我如何针对外部库进行构建 例如在我的情况下 我想针对 boost 进行构建 为 MS VC 2019 预构建 问题是这在 Bazel 中可能吗 鉴于 boost 库的本地路径是 c boost 1 72 0 其
  • 在 Delphi 7 中处理 CMYK jpeg 文件

    我正在尝试访问存储为 Jpeg 文件的文件 是否有一种简单的方法可以在不损失性能的情况下显示这些图像文件 您可以使用 TJPEGImage 实例加载 JPeg 文件 然后将其分配给 TBitmap 进行显示 您可以在单位 jpeg 中找到
  • 致命:远程错误:找不到存储库 octocat/myapp

    我是第一次使用 Git 刚刚分叉了一个开源项目 如下GitHub 的说明 我可以在本地计算机上克隆我的分叉 但在运行这些命令时出现错误 git remote add upstream git github com octocat myapp
  • 区分数据库中的最新数据

    我正在将数据存储在我的数据库中 存储的数据如下所示 id upload month created at 1 January 2017 01 30 13 22 39 2 Febuary 2017 01 30 13 23 42 3 Janua
  • 在 REPL 中使用对象时任务不可序列化

    因此 另一个问题促使我尝试以下操作 object Foo def f 1 sc parallelize List 1 map x gt val myF Foo f x myF 哪个有效 但以下无效 object Foo def f 1 de
  • ASP.Net MVC 路由捕获所有 *.aspx 请求

    This must之前曾被问过 但读完后here here here and here我无法推断相关部分以使其发挥作用 我正在将旧的 Web 表单站点改造成 MVC 并且想要捕获特定的传入 HTTP 请求 以便我可以发出RedirectPe
  • 按内部元素的数量对二维数组进行排序

    如何按二维数组内部元素的长度对其进行排序 内部元素的数量不相同 Example a 1 2 3 4 5 6 7 8 9 排序后 数组变为 gt 4 5 6 7 2 3 8 9 1 该解决方案有效 a 1 2 3 4 5 6 7 8 9 a