gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 06:41:41 24 4
gpt4 key购买 nike

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

输入:

[1, 2, 3]

输出:

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

如果我引入一个变量就很容易了:

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

但是对于数组字面量,我能想出的唯一解决方案涉及 instance_execinstance_eval,这看起来很老套:

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

我是忽略了内置方法还是明显的解决方案? group_bycombinationpermutationpartition 似乎没有帮助。

最佳答案

我想出了这样的事情:

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

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

关于ruby - 将数组拆分为(元素=>剩余元素)对的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com