将数组拆分为(元素 => 剩余元素)对的方法

2024-01-06

给定一个数组字面量,我想创建一个散列,其中键是数组中的元素,值是包含其他/剩余元素的数组。

Input:

[1, 2, 3]

Output:

{1=>[2, 3], 2=>[1, 3], 3=>[1, 2]}

如果我引入一个变量,这很容易:

arr = [1, 2, 3]
arr.map { |i| [i, arr - [i]] }.to_h

但是对于数组文字,我能想到的唯一解决方案是instance_exec or instance_eval,这看起来很黑客:

[1, 2, 3].instance_exec { map { |i| [i, self - [i]] } }.to_h

我是否忽略了内置方法或明显的解决方案?group_by, combination, permutation and partition似乎没有帮助。


我想出了这样的东西:

[1,2,3].permutation.to_a.map{ |e| [e.shift, e] }.to_h

然而,这有一个缺陷:它多次分配相同的键,但由于您不关心其中元素的顺序,这可能是一个“足够好”的解决方案。

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

将数组拆分为(元素 => 剩余元素)对的方法 的相关文章

  • Ruby on Rails:有条件地显示部分内容

    我不确定我在这里是否采用了最好的方法 但我有一个数据块 我想在搜索完成后显示它 并且之前根本不存在 首先 没有什么可显示的 其次它引用的模型为零 因此它抛出异常 我将此块放置在部分模板中 并将其添加到布局中的适当位置 有没有办法有条件地干净
  • Rails 删除方法不起作用

    好吧 我在 Ruby on Rails 中的删除方法上遇到了这样的问题 我想 我尝试了我读过的所有内容 但它不起作用 也许你可以帮助解决这个问题 当我单击链接时 它会重定向到患者 1 confirm Are you sure 3F meth
  • 如何在 rake 任务中包含 ActionMailer 类?

    我想在我的 rake 任务中使用 ActionMailer 以便在特定时间向人们发送电子邮件 我在 app mailers 文件夹中编写了一个邮件程序类 如下所示 class AlertsMailer lt ActionMailer Bas
  • 在 Ruby/Sinatra 中解码 Facebook 的签名请求

    由于 Facebook 不赞成使用新的 FBML 我正在寻找一种新方法来创建 显示 选项卡 向粉丝显示一个版本 向非粉丝显示另一个版本的页面选项卡 Facebook 已将数据添加到signed request 中 当用户在应用程序中选择您的
  • 强制 DataMapper 断开与 postgresql 的连接

    我有一个测试 正在 postgresql 中创建和销毁多个数据库 为了能够删除数据库 我需要告诉 DataMapper 断开连接 我似乎找不到任何有关如何执行此操作的文档 DataMapper Adapters PostgresAdapte
  • 地图、每个和收集之间有什么区别? [复制]

    这个问题在这里已经有答案了 在 Ruby 中 功能之间有什么区别吗 each map and collect each不同于map and collect but map and collect是相同的 技术上map是一个别名collect
  • Ruby 代码到 JAR

    我希望能够将 ruby 程序编译为 java JAR 程序 我研究过 JRuby 看到了几个能够 eval ruby 代码的 Java 应用程序示例 但是是否有更优雅的解决方案允许简单地用 ruby 编写所有内容 然后将其直接编译为 JAR
  • Ruby 在带有偏移量的数组中查找

    我正在寻找一种以更简洁的方式在 Ruby 中执行以下操作的方法 class Array def find index with offset offset block offset 1 find block end end offset a
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 如何检查水豚中的复选框?

    我正在使用 Rspec 和水豚 我怎样才能写一个步骤来检查checkbox 我试过了check按价值但它找不到我的checkbox 我不知道该怎么做 因为我实际上有相同的 ID 但值不同 这是代码
  • gem install rmagick 在 OS X El Capitan 上失败

    几天前我升级到 El Capitan 并运行了 brew update brew upgrade 它更新了 imagemagick 导致 ruby 的 rmagick gem 停止工作 我想没问题 我就跑 gem install rmagi
  • 由于符号链接错误,无法在 Mac OSX 10.8.1 中安装 ruby​​-1.9.2

    首先 我尝试了常见的rvm安装 rvm安装1 9 2 但是 显示了以下错误 The provided compiler usr bin gcc is LLVM based it is not yet fully supported by r
  • Capybara 的 has_selector 有哪些选项?

    我在 RSpec 中遇到此错误 有没有任何文档have selector解释了选项哈希中的每个键以及它到底有什么作用 invalid keys content should be one of text visible between co
  • 使用 YAML.load 解析 json 安全吗?

    我使用的是红宝石2 1 0 我有一个 json 文件 例如 测试 json item apple 1 banana 2 使用 YAML load 加载此文件是否安全 YAML load File read test json 我正在尝试加载
  • 如何在 JS Rails 响应中包含 HTML?

    我有一个响应 HTML 和 JS AJAX 查询的 FooController app controllers foo controller rb class FooController lt ApplicationController l
  • Ruby mp3 Id3 解析

    目前我正在从事一个音乐项目 处理用户 mp3 上传 问题是我找不到适用于所有文件的 id3 库 我努力了id3 ruby and Mp3Info库 但它们都没有给我一致正确的结果 例如 最常见的问题 错误的流参数 比特率和采样率 有时是持续
  • 什么是 - 获取的是一个目录 - 错误消息

    我收到这个奇怪的错误 Users gideon Documents ca ruby rubytactoe lib player rb 13 in gets Is a directory spec Errno EISDIR 玩家规格 rb r
  • 使用复选框过滤列表

    我有一个电影列表及其评级 在我的页面顶部 我有一个表单 其中提供了一个复选框列表 其中显示了每个可用的评级 G PG 13 等 一旦用户单击复选框并点击提交 我只想显示所选的电影 在我的索引方法中 我有一个名为的实例变量 filtered
  • 将 ruby​​ 类转换为模块比使用改进更好的方法?

    Module refine http ruby doc org core 2 0 0 Module html method i refine方法接受一个类和一个块并返回一个细化模块 所以我想我可以定义 class Class def inc
  • 下载所有 gems 依赖项

    我想通过下载任何所需的文件并将它们带到另一台计算机来安装指南针没有互联网连接 我已经下载了指南针的源包 当我在未连接的计算机上运行 gem 时 它抱怨缺少依赖项 有什么解决办法吗 这正是我遇到的问题 经过一段时间的搜索后 我找到了一个可以使

随机推荐

  • 在 MySql 中用一个公共字段连接表,但公共字段的值不同

    如何将 3 个表与一个公共字段连接起来 例如 表1 c id 用户名 密码 c 角色 表2 p id 用户名 密码 c 角色 表3 s id 用户名 密码 c 角色 in this c role领域很常见 在这里我分配了 表 1 中 c r
  • 这段 T-SQL 代码中发生了什么? (连接 SELECT 语句的结果)

    我刚刚开始学习 T SQL 需要一些帮助来理解特定代码块中发生的情况 我修改了一些代码我在上一个问题中收到的答案 https stackoverflow com questions 2554826 dynamic sql to genera
  • 无法让 RSpec 工作 - “require”:无法加载此类文件

    我花了三天时间把头撞在墙上 试图找出为什么一个简单的 rake 无法通过我的规范文件 如果您遇到这种情况 任何文件夹路径中都不要有空格 严重地 事实上 从现在开始 您命名的任何内容都不要有空格 这是我的控制台输出 in Users Desk
  • OrientDB:连接组件 OSQL 查询

    有谁知道如何使用 OrientDB 查询计算图的连通分量 我正在尝试复制所做的事情here https stackoverflow com questions 22497707 get connected graphs in neo4j b
  • Chrome DevTools:文件丢失与工作区的链接

    当我修改代码时 加载到 Google Chrome DevTools 中的 Javascript 文件经常会丢失与工作区的链接 绿点消失 结果是简单的保存不再起作用 我必须使用右键单击菜单中的 另存为 并且调试经常停止 使用 将文件夹添加到
  • 在unix中使用“find”命令时出错

    我只是尝试下面的代码 但它不起作用 请建议更正此代码 echo abc txt while read name do find name name done 输出成功 rak abc txt echo abc txt pqr txt whi
  • 使用 PHP 创建表并从 MySQL 填充

    我正在创建一个要在网页上显示的表 该表是根据 MySQL 数据库中的数据填充的 我正在尝试做一些对我来说很困难的事情 首先 我尝试通过 JavaScript 调用 HTML 中单独文件中存在的 PHP 代码 我认为我可以正常工作 但我不是
  • 图像处理:“可口可乐罐”识别的算法改进

    过去几年我做过的最有趣的项目之一是一个关于图像处理 https en wikipedia org wiki Image processing 目标是开发一个能够识别可口可乐的系统 cans 请注意 我强调 罐头 这个词 您很快就会明白原因
  • 如何创建自定义 git/bash 脚本?

    我想让它这样 如果我输入git recent在我的终端中 它实际上运行 git reflog egrep io moving from space awk print 3 awk x 0 egrep v a f0 9 40 head n5给
  • 第一个和最后一个 UITableViewCell 在滚动时不断变化

    我有一个 tableView 其中的单元格包含一个 UITextField 作为每个单元格的子视图 我的问题是 当我向下滚动时 第一个单元格中的文本会在最后一个单元格中重复 如果我弄清楚原因的话我一辈子都做不到 我尝试从不同的笔尖加载单元格
  • 如何在Visual Studio中调试SQL

    有没有在Visual Studio中调试sql的方法 有一种方法可以在 SQL Server 上运行的 Visual Studio 中调试存储过程 您可以通过 服务器 选项卡建立与 SQL 服务器的连接 然后只需打开一个存储过程 设置一个断
  • 在脚本化管道中发布等效内容?

    与声明性管道相比 脚本化管道中 post 的语法是什么 https jenkins io doc book pipeline syntax post https jenkins io doc book pipeline syntax pos
  • 使用预备语句时是否需要 mysql_real_escape_string() ?

    对于此查询 需要使用mysql real escape string 有什么改进或者查询没问题吗 consulta REQUEST term sql db gt prepare select location from location j
  • 向 Identity users 表添加软删除

    我已经在我的用户表中添加了一个已删除的列 但显然身份框架提供的注册新用户方法仍然可以在数据库中看到这些用户 有没有办法告诉它忽略某个列 登记 this needs to ignore any DeletedAt where not null
  • PHP:PEAR 邮件消息错误

    我可以通过此代码发送电子邮件 网址 http stackoverflow com questions 712392 send email using gmail smtp server from php page 但错误如下所示 严格标准
  • 使用自制 Python 在 Mac 10.8 上安装 scipy 的正确位置是什么?

    我遵循了大多数 Python 爱好者的建议 设置了一个与 Mac OS X 内置版本不同的 Python 版本 经过一番扫描后 处理问题的最佳方法似乎是使用homebrew 然后跟进pip 一切都很好numpy 然后事情就变糟了 我无法得到
  • Java:按照指定的时间间隔执行一个方法

    我有这个问题 如果可能的话 我需要一个无限重复的方法 但又不会使系统超载 据我了解 while true code 会挂起系统 您建议我使用什么不会挂起系统 Thanks 还 我的方法的执行可能需要长达 5 分钟或 50 毫秒 并且我希望方
  • 如何在 SQL Server 2008 中更改此计算列?

    我使用以下行创建了一个计算列 alter table tbPedidos add restricoes as cast case when restricaoLicenca 1 or restricaoLote 1 then 1 else
  • Angular 通过替换现有参数导航到 url

    In our Angular我们的应用程序有一个 DropDown 组件 其中填充了年份 选择年份后 我们需要更改路由器 url 如下所示 网址 客户 2015 网址 客户 2016 网址 客户 2017 OR url 客户 其他页面 20
  • 将数组拆分为(元素 => 剩余元素)对的方法

    给定一个数组字面量 我想创建一个散列 其中键是数组中的元素 值是包含其他 剩余元素的数组 Input 1 2 3 Output 1 gt 2 3 2 gt 1 3 3 gt 1 2 如果我引入一个变量 这很容易 arr 1 2 3 arr