gpt4 book ai didi

ruby - 如何在 ruby​​ 中合并两个具有相同键的散列

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

我有两个散列,它们应该具有相同的键,例如:

a = {a: 1, b: 2, c: 3}
b = {a: 2, b: 3, c: 4}

我想像这样总结每个值:

if a.keys == b.keys
a.values.zip(b.values).map{|a, b| a+b}
end

但如果键的顺序不同,如 b = {a: 2, c: 4, b: 3},此代码将不起作用。

如何编写考虑到键顺序的代码?

最佳答案

使用Hash#mergeHash#merge! :

a = {a: 1, b: 2, c: 3}
b = {a: 2, c: 4, b: 3}
a.merge!(b) { |k, o, n| o + n }
a # => {:a=>3, :b=>5, :c=>7}

该 block 使用键、旧值、新值调用。并将 block 的返回值用作新值。

关于ruby - 如何在 ruby​​ 中合并两个具有相同键的散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24634150/

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